私はC#で奇妙な振る舞いをしています。
私は静的を含むクラスを持っています。
public class Status
{
public int Id { get; internal set; }
public string Name { get; internal set;}
public static Status Created = new TicketStatus { Id = 1, Name = "Created" };
}
私はそれをそのように使用します( myObj.Status が Id=1 および Name="Created" の Status インスタンスであると仮定します):
Assert.AreEqual(myObj.Status, Status.Created);
// True
それは正常に動作し、両方のオブジェクトが等しいです。
しかし、 Status クラスをこれに変更すると:
public class Status
{
public int Id { get; internal set; }
public string Name { get; internal set;}
public static Status Created
{
get { return new TicketStatus { Id = 1, Name = "Created" }; }
}
}
それから声明
Assert.AreEqual(myObj.Status, Status.Created);
// False
もう機能しません。両方のオブジェクトが異なります。
理由がわかりません。