我想在类中调用构造函数,如:public class Myclass(){
public MyClass(){
//......
}
public MyClass(int id):this(){
//......
}
private void Reset(){
//.....
this = new MyClass(id); //here I want to call constructor
//......
}
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.是否可能,如果是,我该怎么办?
Jus*_*ner 15
简单回答:你做不到.
稍微复杂的答案:将初始化逻辑移动到可以从构造函数和Reset()方法中调用的单独方法中:
public class MyClass
{
public int? Id { get; }
public MyClass()
{
Initialize();
}
public MyClass(int id)
{
Initialize(id);
}
public Reset()
{
Initialize();
}
private Initialize(int? id = null)
{
// initialize values here instead of the constructor
Id = id;
}
}
Run Code Online (Sandbox Code Playgroud)
Tim*_*ter 12
你不能.但你可以做的是将构造函数逻辑拆分为Initialize方法,然后重置可以调用.
public MyClass(){
//......
}
public MyClass(int id):this(){
Initialize(id);
}
private void Initialize(int id){
//....
}
private void Reset(){
//.....
Initialize(id);
//......
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15299 次 |
| 最近记录: |