Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有这个:
class Class1 {...} public class Class2 : Class1 { public void myMethod(){}; } var sth = new Class2();
现在,我想做sth.myMethod(),但该方法无法访问,为什么?如何解决?(我不想通过Class1公开来解决这个问题)
sth.myMethod()
Class1
这是不允许的。编译器会给出如下错误:
可访问性不一致:基类“YourNamespace.Class1”的可访问性低于类“YourNamespace.Class2”
您不能从可访问性低于您要公开的类的类继承。
在这种情况下,最好的选择是使用组合而不是继承。
public class Class2 { private Class1 class1 = new Class1(); // Create an instance instead of inheriting... public void MyMethod() { } }