我认为在类(C#)中使用默认构造函数并不是强制性的.
那么,在那种情况下,我应该在课堂上有一个空构造函数,还是可以跳过它?
拥有一个空的默认构造函数是最佳做法吗?
Class test
{
public test()
{
}
......
}
Run Code Online (Sandbox Code Playgroud)
要么
Class test
{
......
}
Run Code Online (Sandbox Code Playgroud)
Soe*_*Moe 71
如果第三方不会使用该类,并且您不需要重载的构造函数,请不要编写空构造函数.
但...
想象一下,您已经发运了产品,第三方使用了您的课程.几个月后,有一个新的要求,使您添加带有参数的构造函数.
现在,通过这样做,C#编译器不再生成默认构造函数.如果您没有显式添加空构造函数,则第三方代码将中断.
在我看来,你应该总是为第三方使用的公共类定义空构造函数(一个线程).
There's nothing like default constructors.它是C#中的公共参数构造函数.C#编译器将在编译时在类中查找构造函数,如果没有定义构造函数,则会添加一个无公共参数的构造函数.因此,如果类对象不需要任何特殊的构造操作,则可以跳过定义构造函数.
其次,如果您使用参数定义一个构造函数,则编译器将不会添加公共无参数构造函数,因为编译器将假定您的对象必须通过您定义的构造函数构造.话虽如此,如果您需要使用参数化构造函数构造对象,则必须显式定义无参数构造函数(如果您至少有一个参数化构造函数).
您还可以使用私有无参数构造函数,这有助于制作单例类.
如果您不需要无参数构造函数,请不要添加一个空体构造函数。但是,如果有人想要序列化/反序列化您的类的对象,那么您将需要一个无参数构造函数。
如果你没有定义构造函数,那么编译器会自动为你生成一个默认的无参数的,但如果你自己定义了一个构造函数,它就不会。
顺便说一句,您可以通过定义一个空的私有构造函数来抑制 C# 编译器自动生成的默认构造函数。
| 归档时间: |
|
| 查看次数: |
39904 次 |
| 最近记录: |