Jon*_*eet 101
我认为这应涵盖所有基础......
Mic*_*odd 39
把它私有化.
所以,
class SomeClass
{
private SomeClass()
{
}
public SomeClass(int SomeParam)
{
}
}
Run Code Online (Sandbox Code Playgroud)
你可以把它变成私人的:
private MyClass()
{
}
Run Code Online (Sandbox Code Playgroud)
或者(如果您还不知道)如果您只是声明一个带参数的构造函数,编译器不会添加默认值,例如
private MyClass(string myParameter)
{
//Can't call new MyClass() anymore
}
Run Code Online (Sandbox Code Playgroud)
有一点需要提及的是其他人没有.默认构造函数仍应能够设置默认实现位,以避免重用.如果它是私有的,这不是问题,因为您仍然可以链接到私有构造函数.你只是让它对外部来源无法使用.
private MyClass()
{
}
public MyClass(string something) : this()
{
}
Run Code Online (Sandbox Code Playgroud)
这解决了这个问题.但请注意,如果类没有密封,受保护实际上可能是首选实现.
| 归档时间: |
|
| 查看次数: |
22401 次 |
| 最近记录: |