当前位置: 首页 > 编程语言 > C#

您是否在类本身中使用数据成员或公共属性?分享

时间:2023-04-10 12:54:59 C#

类本身是否使用数据成员或公共属性?如果我有一个像这样的简单类设置:classMyClass{privatestring_myName=string.Empty;公共字符串MyName{get{return_myName;}}publicvoidDoSomething(){//获取名称...stringname=string.Empty;名字=_我的名字;//或者名字=我的名字;//...并用它做点什么...}}我应该使用哪个,公共属性还是数据成员?显然,在这个例子中它没有什么不同,因为它们都只是引用同一个变量。但是公共财产的实际用途呢?一般来说,很少实现公共属性,在这种情况下可以调用它们吗?或者人们是否将大量函数放入了不应由内部类引用调用的公共属性中?我在另一篇文章中看到一些关于不向属性添加很多功能的内容,因为在调试器中检查它们可能会产生意想不到的结果。真的吗?使用属性——封装在setter和getter中的任何逻辑甚至可以在类本身中应用。如果getter和setter中没有逻辑,那么使用这些字段本身仍然是不安全的,因为如果您想在访问这些字段的方式中添加逻辑,您将不得不进行更多的重构。我相信您应该将该属性称为一般做法。虽然在这个特定示例中确实没有太大区别,但get/set访问器提供了在获取属性时做更多工作的能力。例如,我们的许多属性“get”访问器在更复杂的数据结构中执行一些查找,或者如果没有定义则设置默认值。所以班级的其他人可以利用这个逻辑,我们养成了使用属性的习惯。所以我们不用想太多,我们尽量把做法概括一下。可能存在我们想要直接访问底层数据成员的情况,但这是出于特定原因的有意识的决定,而且往往是例外情况。我更喜欢属性,因为它们可以轻松处理只读情况,并且很容易用您可能需要做的任何基本验证来包装它们。如果我只是返回内部变量的值,我就是在公开变量——这样做没有坏处。当我想做一些事情来响应查看或更改值时,我总是使用公共属性-即,将其写入数据库,设置其他内容(如示例的第二部分)。您需要问的问题是您是否希望这些事件由类内部发生的事情触发。如果你这样做,就像外部调用者一样,然后通过属性访问值。如果您只想读取值,请使用内部变量。要回答您的问题,这两种方式都没有害处-只需考虑潜在的副作用。C#学习教程就是这样:您在类本身中使用数据成员还是公共属性?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: