c# – 为什么“不要从派生类访问基类中定义的静态成员.”
发布时间:2020-12-15 08:44:56 所属栏目:百科 来源:网络整理
导读:微软在 C# Coding Conventions (C# Programming Guide)上的文章明确指出: “Do not access a static member that is defined in a base class from a derived class.” 为什么不访问静态成员? 似乎存在这种情况应该发生的有效场景,例如所有const成员都是静
微软在
C# Coding Conventions (C# Programming Guide)上的文章明确指出:
为什么不访问静态成员? 似乎存在这种情况应该发生的有效场景,例如所有const成员都是静态的.派生类是否永远不能读取基类中定义的const成员? 解决方法
我们以object.ReferenceEquals为例.以下是从派生类调用此方法的几种方法:
class A { A() { ReferenceEquals("a","b"); //your warning is based on this style object.ReferenceEquals("a","b"); //recommended style } } ReferenceEquals在A中可访问的事实只是巧合.静态方法独立于任何继承层次结构.因此,始终从任何地方称之为完全合格. 这个警告只是关于风格和清晰度.我展示的所有变种都编译成相同的IL. 不同的解释是您滥用继承来缩短用于调用方法的语法.这是滥用继承权. ASP.NET MVC使用Controller基类执行此操作.它允许你写返回View();.它使用继承来方便地使用一组方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |