在我的課上,我實施了Equals
和GetHashCode
。然而,當我把它作爲我的C#代碼字典鍵,我得到的錯誤:"Key not found exception"
謝謝,GetHashCode已實現但字典無法找到密鑰?
public class Time: IEquatable<Time>
{
public String hour;
public String minute;
public Time()
{
hour = "00";
minute = "00";
}
public Time(String hour, String minute)
: this()
{
this.hour = hour;
this.minute = minute;
}
public override int GetHashCode()
{
int hash = int.Parse(hour) * 60 + int.Parse(minute);
return hash.GetHashCode();
}
public override bool Equals(Time time)
{
return (this.hour == time.hour && this.minute == time.minute);
}
}
我所在的地方使用它的代碼:
Dictionary<Time, int> time2RowIndex = new Dictionary<Time, int>();
...
int beginRow = 0;
if(time2RowIndex.ContainsKey(time.hour))
beginRow = time2RowIndex [time.hour];
什麼是「資源」?它是「小時」的一個實例嗎? – dtb
@dtb在我的實際代碼中,Time類是Resource類的一個子類!小時應該是'時間'! –