根据Microsoft Class始终包含私有的默认构造函数,那么如何在另一个类中启动Object。
答案 0 :(得分:1)
您错过了article中最重要的部分:
私有构造函数是一个特殊的实例构造函数。 是的 通常用于仅包含静态成员的类。如果是类 有一个或多个私有构造函数,没有公共构造函数,其他 类(嵌套类除外)无法创建此类的实例
他们在文章中展示的常见用例是关于仅通过所述类使用静态成员,如下所示:
class NLog
{
// Private Constructor:
private NLog() { }
public static double Foo = 3.284;
}
类没有默认的private
构造函数,they have a public
one (except for abstract classes):
如果类是抽象的,那么声明的可访问性为 默认构造函数是 protected。否则,声明 默认构造函数的可访问性为 public 。因此,默认 构造函数始终是
形式
答案 1 :(得分:1)
你只是误读了那个页面。对于没有定义构造函数的类:
class C {}
存在默认的公共构造函数C()
。
如果显式声明了构造函数,那么该默认构造函数将不存在。如果你声明你的构造函数:
class C
{
C()
}
然后它将是私有的,因为除非使用明确的public
,internal
或protected
访问修饰符,否则所有类成员都是私有的。
答案 2 :(得分:0)
"空构造函数的声明会阻止自动生成默认构造函数" (https://msdn.microsoft.com/en-us/library/kcfb85a6.aspx)
如果声明一个空构造函数(无论是否为私有构造函数,它并不重要),则会阻止生成默认构造函数(始终是公共的)。