我想知道为什么不能为“类型实例”创建扩展方法。例如,如果提供了此功能,则可以“扩展”静态类。
例子:
public static class A
{
public static void Method()
{
}
}
public static class AExtensions
{
public static void Method2(this static A a)
{
// something
}
}
当然,真正的答案是:开发这样一个功能的成本远远超过了潜在的好处。
但是,请考虑一下。您实际上将从该功能中获得什么?您已经可以合法地完美地做到这一点,这实际上是在“扩展”静态类。
// 3rd party library
public static class A {
public static void Method() {
}
}
// my source code
public static class AExtensions {
public static void Method2() {
}
}
如果你认为通过扩展类A
你会以某种方式访问它的所有internal
成员private
,那么你将无法做到这一点,它会破坏封装。您也不能使用实例扩展方法来做到这一点。