C# 类派生和可访问性
我有这个:C# 类派生和可访问性,c#,.net,C#,.net,我有这个: class Class1 {...} public class Class2 : Class1 { public void myMethod(){}; } var sth = new Class2(); 现在,我想做sth.myMethod(),但该方法无法访问,为什么?如何解决这个问题?(我不想通过公开Class1来解决这个问题)这是不允许的。编译器将给出如下错误: 可访问性不一致:基类“YourNamespace.Class1”的可访问性不如类“YourNamesp
class Class1
{...}
public class Class2 : Class1
{
public void myMethod(){};
}
var sth = new Class2();
现在,我想做
sth.myMethod()
,但该方法无法访问,为什么?如何解决这个问题?(我不想通过公开Class1
来解决这个问题)这是不允许的。编译器将给出如下错误:
可访问性不一致:基类“YourNamespace.Class1”的可访问性不如类“YourNamespace.Class2”
您不能从可访问性低于要公开的类的类继承
在这种情况下,最好的选择是使用组合而不是继承
public class Class2
{
private Class1 class1 = new Class1(); // Create an instance instead of inheriting...
public void MyMethod()
{
}
}
这是不允许的。编译器将给出如下错误: 可访问性不一致:基类“YourNamespace.Class1”的可访问性不如类“YourNamespace.Class2” 您不能从可访问性低于要公开的类的类继承 在这种情况下,最好的选择是使用组合而不是继承
public class Class2
{
private Class1 class1 = new Class1(); // Create an instance instead of inheriting...
public void MyMethod()
{
}
}
这包含与您的问题相关的信息。如果希望基类的子类公开,则必须将其公开。这包含与您的问题相关的信息。如果希望基类的子类公开,则必须将其公开。好的,谢谢您提供的信息。:)好的,谢谢你提供的信息。:)