Emb*_*rja 2 .net c# constructor access-modifiers
我收到此错误:
由于其保护级别,'CTest.AA()'无法访问.
编译此代码时:
public class A
{
private A()
{
}
}
public class B : A
{
public void SayHello()
{
Console.WriteLine("Hello");
}
}
Run Code Online (Sandbox Code Playgroud)
有谁能解释为什么?
Alb*_*nbo 14
因为A的默认构造函数是private,所以请尝试protected A() {}作为构造函数.
类B自动调用默认构造函数A,如果无法访问B或者没有默认构造函数(如果有构造函数protected A(string s) {})B则无法正确实例化.
编译器自动生成以下默认构造函数 B
public B() : base()
{
}
Run Code Online (Sandbox Code Playgroud)
哪里base()是默认的构造函数的实际调用A.
| 归档时间: |
|
| 查看次数: |
2406 次 |
| 最近记录: |