という名前のクラスがありEmployee
ます。今、そのメソッドを定義しようとしていますが、 as パラメーターのみEquals
を受け入れたいと考えています。Employee
だから私はこのコードを書きます:
class MainClass
{
public static void Main (string[] args)
{
Employee e = new Employee();
Employee e2 = new Employee();
Console.WriteLine(Equals(e, e2));
}
public static Employee CreateEmployee()
{
return new Employee();
}
}
class Employee
{
public int ID;
public bool Equals (Employee e)
{
Console.WriteLine("Compare!");
return ID == e.ID;
}
}
しかし、うまくいきません!コンソール出力:
false
私が期待したものではありません:
Compare!
true
と書かなければいけないようpublic override bool Equals (Object)
ですが、なぜですか?C# は、パラメーターの型によって呼び出すメソッドを選択できませんか?