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

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

概述部分与 an earlier question of mine相关,我有一个系统,我必须将复杂数据存储为字符串.我没有将这些字符串解析为各种单独的对象,而是创建了一个包含所有这些对象的类,它有一些解析器逻辑将所有属性编码为字符串,或解码字符串以获取这些对象.这一切都很好,很好.这个问题不是关于解析器本身,而是关于我应该在哪里容纳解析器的逻辑.把它作为一种财产或一种方法是一个更好的选择吗? 对于属性 部分与 an earlier question of mine相关,我有一个系统,我必须将复杂数据存储为字符串.我没有将这些字符串解析为各种单独的对象,而是创建了一个包含所有这些对象的类,它有一些解析器逻辑将所有属性编码为字符串,或解码字符串以获取这些对象.这一切都很好,很好.这个问题不是关于解析器本身,而是关于我应该在哪里容纳解析器的逻辑.把它作为一种财产或一种方法是一个更好的选择吗?

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

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

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

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

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

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

总结

以上是内存溢出为你收集整理的c# – 何时使用方法与属性进行类定义更好?全部内容,希望文章能够帮你解决c# – 何时使用方法与属性进行类定义更好?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1226166.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存