繁体   English   中英

如果 class 没有构造函数会怎样? 在 C#

[英]What happens if a class doesn't have a constructor? in C#

如果class没有构造函数,如何在C#中实例化它?

总是有一个默认的无参数构造函数,即使它没有在 class(或结构)中明确声明。 删除它的唯一方法是提供不同的构造函数。

所以这:

class Foo
{

}

是相同的

class Foo
{
    Foo(){}
}

但这删除了默认构造函数:

class Foo
{
    Foo(string bah){}
}

如果您为构造函数提供参数,则不再自动添加无参数构造函数。 如果需要,您必须自己提供。 因此,对于最后一个 class 定义,您不能编写Foo f = new Foo(); 不再,因为参数bah是强制性的。

如果未定义显式构造函数,则使用默认无参数构造函数,所有本地成员都有其默认值(它们不像 C++ 中那样未初始化)

构造函数的目标是用构造函数调用上定义的一些属性或属性来实例化 class。 如果 class 没有任何构造函数重载,则可以实例化它,并且默认情况下它不会设置任何属性。 然后,每个新实例都是相同的。

实例的部分属性可以在class中默认设置,在class实例化后可以修改。 您也可以使用 class 来调用方法。

你不会真正看到这么多,因为它被认为是不好的做法,但你仍然可以在 jank 项目中侥幸逃脱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM