【发布时间】:2014-04-01 06:38:42
【问题描述】:
我对默认构造函数访问修饰符是什么以及这个 MSDN statemtn 说什么感到困惑
If the direct base class does not have an accessible parameterless instance constructor, a compile-time error occurs.
因为当我将它应用于测试程序时,它失败了。我可以创建一个继承另一个类的对象或类,尽管没有定义外部无参数构造函数。
class A
{
}
class B : A
{
}
class C
{
public void main()
{
B objB = new B();// as per MSDN here should be the compile time error.
}
}
[Source]
【问题讨论】:
-
B 有一个自动生成的公共默认构造函数。
-
所以你的意思是在 B 中,如果我在外部将无参数构造函数设为私有,那么只会出现编译时错误。
-
但是 Jon Skeet 回答的另一个链接说 C# 中所有内容的默认访问权限是“您可以为该成员声明的最受限制的访问权限”。这与此 MSDN 链接相矛盾。
-
如果一个类是内部的,那么它的默认构造函数也是公共的..
标签: c#