c# – 受保护的成员领域真的那么糟糕吗?

c# – 受保护的成员领域真的那么糟糕吗?,第1张

概述现在,如果您阅读MSDN for C#中的命名约定,您会注意到它声明属性始终优先于public和protected字段.有些人甚至告诉我,你永远不应该使用公共或受保护领域.现在我同意我还没有找到一个理由,我需要有一个公共领域,但受保护的领域真的那么糟糕? 我可以看到它,如果您需要确保在获取/设置值时执行某些验证检查,但是在我看来,很多时候它似乎只是额外的开销.我的意思是说我有一个类GameIte 现在,如果您阅读MSDN for C#中的命名约定,您会注意到它声明属性始终优先于public和protected字段.有些人甚至告诉我,你永远不应该使用公共或受保护的领域.现在我同意我还没有找到一个理由,我需要有一个公共领域,但受保护的领域真的那么糟糕?

我可以看到它,如果您需要确保在获取/设置值时执行某些验证检查,但是在我看来,很多时候它似乎只是额外的开销.我的意思是说我有一个类GameItem,其中包含basename,prefixname和suffixname的字段.为什么我要承担创建属性(C#)或访问器方法的开销以及我会发生的性能损失(如果我对应用程序中的每个字段执行此 *** 作,我相信它会稍微增加一点点,特别是在某些语言如PHP或某些具有性能的应用程序如游戏一样至关重要?

解决方法

Are protected members/fIElds really that bad?

不,他们的方式更糟糕了.

只要成员比私有更容易访问,您就可以向其他类保证该成员的行为方式.由于一个字段是完全不受控制的,因此将它“放在野外”会打开你的类和类,这些类和类会从你的类中继承或与之交互,从而导致更高的BUG风险.没有办法知道一个字段何时发生变化,无法控制改变它的人或者是什么.

如果现在,或者在将来的某个时刻,您的任何代码都依赖于字段某些特定值,您现在必须添加有效性检查和回退逻辑,以防它不是预期值 – 您使用它的每个地方.当你只是把它变成一个该死的财产时,这是一大笔浪费的努力;)

与派生类共享信息的最佳方法是只读属性:

protected object MyProperty { get; }

如果你绝对必须让它读/写,不要.如果你真的,真的必须让它读写,重新考虑你的设计.如果您仍然需要它进行读写,请向同事道歉并且不要再这样做:)

许多开发人员相信 – 并且会告诉你 – 这是非常严格的.而且你可以在没有这么严格的情况下完成任务.但是采用这种方法可以帮助您从刚刚过去到非常强大的软件.你将花费更少的时间来修复BUG.

关于对性能的任何担忧 – 不要.我保证在你的整个职业生涯中,你永远不会编写如此快速的代码,以至于瓶颈就是调用堆栈本身.

总结

以上是内存溢出为你收集整理的c# – 受保护的成员/领域真的那么糟糕吗?全部内容,希望文章能够帮你解决c# – 受保护的成员/领域真的那么糟糕吗?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存