一般使用接口都默认的public方式,还没有注意过其他访问控制方式。
重构项目时,遇到使用其他控制符的情况,现总结如下:
接口成员属性,默认是public方式,并且不能显式使用其他控制符
interface本身可以用其他控制符,比如:
internal interface MyClass
{
void test();
}
在实现时同样不能使用访问控制符修饰接口方法即便是和接口同一层级的控制符,internal也不行
internal class A : IMyClass
{
void test()
{
Console.write("Test Should without any modifier.")
}
}
调用时需要用接口去实例化对象才能访问到该方法
public class B
{
void TestA()
{
IMyClass a = new A();
a.test();
}
}
或者
public class B
{
void TestA()
{
A a = new A();
(a as IMyClass).test();
}
}