检查是否已设置类属性(Check if class property has been set)

编程入门 行业动态 更新时间:2024-10-23 19:19:27
检查是否已设置类属性(Check if class property has been set)

让我们假设我有一个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";

当我检查user1.Level == user2.Level它返回true因为默认的int值是0 。

那么有没有办法做到这一点我可以理解user2 Level属性没有设置,所以我可以说这两个不相同?

Lets assume I have a User class

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";

When I check user1.Level == user2.Level it returns true since default int value is 0.

So is there any way to do that I can understand that Level property of user2 is not set so that I can say these two are not identical?

最满意答案

1)如果你使用int? 作为Level的类型,未设置时为NULL。

public Class User { public string Name { get; set; } public string Surname { get; set; } public int? Level {get;set;} }

2)您可以使用level属性的setter,并在设置新值时设置布尔值,如果其他建议的解决方案对您不利。 例:

public Class User { public string Name { get; set; } public string Surname { get; set; } private int _Level; public int Level { get { return _Level; } set { _Level= value; _hasLevel = true; } } public bool HasLevel { get { return _hasLevel; } } }

1) If you use int? as type for Level, it will be NULL when not setted.

public Class User { public string Name { get; set; } public string Surname { get; set; } public int? Level {get;set;} }

2) you can use the setter of the level attribute and set a boolean when you set a new value, if the other proposed solution is not good for you. Example:

public Class User { public string Name { get; set; } public string Surname { get; set; } private int _Level; public int Level { get { return _Level; } set { _Level= value; _hasLevel = true; } } public bool HasLevel { get { return _hasLevel; } } }

更多推荐

user,Level,int,User,电脑培训,计算机培训,IT培训"/> <meta name="descripti

本文发布于:2023-08-07 20:12:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1465995.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:已设置   类属   Check   set   property

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!