我想知道为什么不能为'type instance'创建扩展方法。如果已经提供了这个功能,那么就可以“扩展”静态类。例如。
示例:
public static class A
{
public static void Method()
{
}
}
public static class AExtensions
{
public static void Method2(this static A a)
{
// something
}
}
答案 0 :(得分:1)
当然,真正的答案是:开发此类功能的成本远远超过潜在的好处。
然而,只要想一想。你真的会从这个功能中获得什么?你已经可以完全合法地做到这一点,这有效地“扩展”了静态类。
// 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
成员的访问权限,那么您将无法做到这一点,它会破坏封装。你不能用实例扩展方法做到这一点。