自己写的类需要重写ToString(), HashCode(), Equal()吗?
在Joshua Bloch的《Effective Java》中是提到需要改写ToString(), 在修改Equal的时候改写HashCode。
在java里面现在可以引入三个apache的类来完成,例如:
那么就问问:.NET里面需要改写么?有没有类似的函数可以辅助完成呢? 谢谢赐教!
在java里面现在可以引入三个apache的类来完成,例如:
1
import org.apache.commons.lang.builder.EqualsBuilder;
2
import org.apache.commons.lang.builder.HashCodeBuilder;
3
import org.apache.commons.lang.builder.ToStringBuilder;
4
5
public String toString() {
6
return new ToStringBuilder(this)
7
.append("id", getId())
8
.toString();
9
}
10
11
public boolean equals(Object other) {
12
if ( (this == other ) ) return true;
13
if ( !(other instanceof TransitionInstance) ) return false;
14
TransitionInstance castOther = (TransitionInstance) other;
15
return new EqualsBuilder()
16
.append(this.getId(), castOther.getId())
17
.isEquals();
18
}
19
20
public int hashCode() {
21
return new HashCodeBuilder()
22
.append(getId())
23
.toHashCode();
24
}
import org.apache.commons.lang.builder.EqualsBuilder;2
import org.apache.commons.lang.builder.HashCodeBuilder;3
import org.apache.commons.lang.builder.ToStringBuilder;4

5
public String toString() {6
return new ToStringBuilder(this)7
.append("id", getId())8
.toString();9
}10

11
public boolean equals(Object other) {12
if ( (this == other ) ) return true;13
if ( !(other instanceof TransitionInstance) ) return false;14
TransitionInstance castOther = (TransitionInstance) other;15
return new EqualsBuilder()16
.append(this.getId(), castOther.getId())17
.isEquals();18
}19

20
public int hashCode() {21
return new HashCodeBuilder()22
.append(getId())23
.toHashCode();24
}那么就问问:.NET里面需要改写么?有没有类似的函数可以辅助完成呢? 谢谢赐教!


浙公网安备 33010602011771号