제 수업에서는 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 클래스의 서브 클래스입니다! 시간은 '시간'이어야합니다! –