加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 何时使用方法与属性进行类定义更好?

发布时间:2020-12-15 20:49:52 所属栏目:百科 来源:网络整理
导读:部分与 an earlier question of mine相关,我有一个系统,我必须将复杂数据存储为字符串.我没有将这些字符串解析为各种单独的对象,而是创建了一个包含所有这些对象的类,它有一些解析器逻辑将所有属性编码为字符串,或解码字符串以获取这些对象.这一切都很好,很
部分与 an earlier question of mine相关,我有一个系统,我必须将复杂数据存储为字符串.我没有将这些字符串解析为各种单独的对象,而是创建了一个包含所有这些对象的类,它有一些解析器逻辑将所有属性编码为字符串,或解码字符串以获取这些对象.这一切都很好,很好.这个问题不是关于解析器本身,而是关于我应该在哪里容纳解析器的逻辑.把它作为一种财产或一种方法是一个更好的选择吗?

对于属性,例如公共字符串DataAsString,get访问器将容纳将所有数据编码为字符串的逻辑,而set访问器将解码输入值并设置类实例中的所有数据.这似乎很方便,因为输入/输出确实是一个字符串.

在方法的情况下,一个方法是Encode(),它返回编码的字符串.然后,构造函数本身将容纳解码字符串的逻辑并需要字符串参数,或者我编写一个单独调用的Decode(string str)方法.在任何一种情况下,它都将使用方法而不是属性.

那么,就代码的实际运行而言,这些路径之间是否存在功能差异?或者他们基本上是等同的,然后归结为个人偏好的选择或哪个看起来更好?在那个问题中……无论如何哪个看起来更干净?

解决方法

没有功能差异;属性只是从行为角度看的get和set方法对.

但是,通常,属性应该是轻量级的.如果您的财产的吸气剂或设定者正在进行大量计算,那么通常鼓励将它们移动到方法中.

这有明显的例外(即ORM领域中的延迟加载,其中get可以触发数据库调用).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读