【发布时间】:2013-05-16 15:44:30
【问题描述】:
我对 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
效果很好,两个对象都相等。
但如果我将我的状态类更改为:
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
不再起作用,两个对象不同。
我不明白为什么?
【问题讨论】:
标签: c# .net properties