禁止扩展方法

时间:2012-06-23 19:49:40

标签: c#

我正在发布一个公共类作为我的C#框架的一部分,以便用户能够在我的应用程序中注册。我不希望用户扩展我的类,因此我将其标记为sealed。现在我有一些用户报告他们在该类中看到的方法多于我提供的方法。经过一些调查后,似乎这些用户已经定义了扩展方法(通过intellisense),就像它们是在我的公共密封类中定义的一样。

问题 有没有办法可以禁止用户在公共密封类上定义扩展方法?

1 个答案:

答案 0 :(得分:8)

不,你不能。老实说,我不明白你为什么要这么做。如果您有想要的用户使用扩展方法,请让他们这样做。没有人会强迫他们这样做,这可能会让他们的生活更轻松。至少在您的类型被密封时,您知道如果有人报告意外可用的方法,他们必须是扩展方法。

请注意,任何人都可以在object上定义一个扩展方法,并且总是可用,即使有一种方法可以禁止您的类上的扩展方法。