brt*_*rtb 5 c# getter setter equality
假设我有一个 User 类
public Class User
{
public string Name { get; set; }
public string Surname { get; set; }
public int Level {get;set;}
}
User user1 = new User();
user1.Name = "name";
user1.Surname = "Surname";
user1.Level = 0;
User user2 = new User();
user2.Name = "name";
user2.Surname = "Surname";
Run Code Online (Sandbox Code Playgroud)
当我检查user1.Level == user2.Level
它返回时,true
因为默认int
值是0
.
那么有什么方法可以让我理解 Level 属性user2
未设置,以便我可以说这两个不相同?
int?
as 类型Level
,则未设置时将为 NULL。public class User
{
public string Name { get; set; }
public string Surname { get; set; }
public int? Level { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Level
如果其他建议的解决方案不适合您,您可以使用属性的设置器并在设置新值时设置布尔值。例子:public class User
{
public string Name { get; set; }
public string Surname { get; set; }
private int _Level;
private bool _hasLevel;
public int Level
{
get { return _Level; }
set { _Level= value; _hasLevel = true; }
}
public bool HasLevel { get { return _hasLevel; } }
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6499 次 |
最近记录: |