use*_*678 3 .net c# properties
我对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" };
}
Run Code Online (Sandbox Code Playgroud)
我这样使用它(假设myObj.Status是一个状态实例,Id = 1且Name ="Created"):
Assert.AreEqual(myObj.Status, Status.Created);
// True
Run Code Online (Sandbox Code Playgroud)
它工作正常,两个对象都是平等的.
但是,如果我将我的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" }; }
}
}
Run Code Online (Sandbox Code Playgroud)
然后声明
Assert.AreEqual(myObj.Status, Status.Created);
// False
Run Code Online (Sandbox Code Playgroud)
不再起作用,两个对象都不同.
我不明白为什么?
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |