У меня странное поведение с C#.Странное поведение со свойствами
У меня есть класс, который включает в себя статику, то, что lokks так:
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 = "Дата создания "):
Assert.AreEqual(myObj.Status, Status.Created);
// True
Он отлично работает, оба объекта равны.
Но если я изменить свой класс состояния в этом:
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
больше не работает, оба объекта различны.
Я не понимаю, почему?