Csharp/C#教程:c#中密封类的扩展方法分享


c#中密封类的扩展方法

我有这个sealed课,

 public sealed class A { public string AName {get;set;} } 

有人可以这样写一个扩展方法:

 public static class Extensions { public static void ExtensionMethodForA (this A a) { Console.WriteLine("A's Extension method!"); } } 

问题是,你如何防止这种情况?

你没有。 你不能。 你不应该这样做。

实例方法始终优先于扩展方法,因此不应出现冲突。 除此之外,它们仅仅是语法/便利。 不要试图让来电者生活不便。

您可能会对术语“扩展方法”感到困惑。 它不是类中方法,甚至不是派生类; 这是一种类型操作。 它无法访问类层次结构的私有,受保护或内部成员,因此该类仍然是密封的。

所以,你不能也不需要。

没有意义。 任何用户仍然可以创建一个静态类,该类实现了一个使用类类型的方法。

他们只是从声明中省略’this’,调用者必须显式传递对象,而不是使用更简单的对象。 句法。 最终结果是相同的。

扩展方法只是表达我刚才描述的更好的方式,无论如何总是可行的。

上述就是C#学习教程:c#中密封类的扩展方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/956501.html

(0)
上一篇 2021年11月20日
下一篇 2021年11月20日

精彩推荐