关于protected方法的直接调用
我们在使用其他第三方库的时候,内部碰见protected类型的方法没办法直接调用,尤其是公司自己开发的dll,前人写的protected类型,
public class Foo
{
protected void GetHello()
{
Console.WriteLine("Hello,World");
}
}
我们没办法这样写

编译会报错,说访问修饰符不对,此时除了反射,我们可以通过扩展方法合理的避免
但是,当我们扩展方法写完后,发现,扩展方法也不能直接调用
此时,我们对原来的方法增加一个关键字internal
public class Foo
{
protected internal void GetHello()
{
Console.WriteLine("Hello,World");
}
}
public static class FooExtension
{
public static void GetHelloEx(this Foo foo)
{
foo.GetHello();
}
}
此时扩展方法可以使用,以及我们可以通过扩展方法调用到原先的方法
使用方式:
internal class Program
{
private static void Main(string[] args)
{
Foo foo = new Foo();
foo.GetHelloEx();
}
}

浙公网安备 33010602011771号