struct PhoneNumber
{
private string number;
public PhoneNumber(string text)
{
this.number = text;
} public string Text
{
get { return this.number; }
} public override int GetHashCode()
{
return this.number.GetHashCode();
} public override bool Equals(object other)
{
return (other is PhoneNumber) && Equals((PhoneNumber)other);
} public bool Equals(PhoneNumber other)
{
return this.number == other.number;
}
} private Name[] names;
public void Add(Name name)
{ this.names[used++] = name;
}
int i = Array.IndexOf(this.names, name);
在这个地方会自动调用结构体中public override bool Equals(object other)这个方法,为什么?
在这个结构体中有public override bool Equals(object other)这个重写的方法,但是现在没有继承什么接口或类,怎么说这个重写呢?
还有就是 public bool Equals(PhoneNumber other) 这个方法和上面的名字一样,可不可以认为是重载呢?
{
private string number;
public PhoneNumber(string text)
{
this.number = text;
} public string Text
{
get { return this.number; }
} public override int GetHashCode()
{
return this.number.GetHashCode();
} public override bool Equals(object other)
{
return (other is PhoneNumber) && Equals((PhoneNumber)other);
} public bool Equals(PhoneNumber other)
{
return this.number == other.number;
}
} private Name[] names;
public void Add(Name name)
{ this.names[used++] = name;
}
int i = Array.IndexOf(this.names, name);
在这个地方会自动调用结构体中public override bool Equals(object other)这个方法,为什么?
在这个结构体中有public override bool Equals(object other)这个重写的方法,但是现在没有继承什么接口或类,怎么说这个重写呢?
还有就是 public bool Equals(PhoneNumber other) 这个方法和上面的名字一样,可不可以认为是重载呢?
int i = Array.IndexOf(this.names, name);
那在这个地方怎么会自己自动调用public override bool Equals(object other)
这个方法啊
是所有类的基类object的虚函数
2、Array.Indexof 会自动调用object.Equals ,你的struct override Equals所以回调用
--------------------------------------------------------------------------------
在.NET中任何类型的数据都是从Object继承而来不管你是不是显示的继承了Object而bool Equals(object other)是Object中的虚方法,显然你这里是复写了Object中的Equals还有就是 public bool Equals(PhoneNumber other) 这个方法和上面的名字一样,可不可以认为是重载呢?
-------------------------------------------------------------------------
这个明显是重载没什么可说的