3
我有一个奇怪的行为与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
不工作了,这两个对象是不同的。
我不明白为什么?