自己写的类需要重写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![](/Images/OutliningIndicators/None.gif)
5
public String toString() {
6
return new ToStringBuilder(this)
7
.append("id", getId())
8
.toString();
9
}
10![](/Images/OutliningIndicators/None.gif)
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![](/Images/OutliningIndicators/None.gif)
20
public int hashCode() {
21
return new HashCodeBuilder()
22
.append(getId())
23
.toHashCode();
24
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
那么就问问:.NET里面需要改写么?有没有类似的函数可以辅助完成呢? 谢谢赐教!