C#:如果一个类有两个构造函数,这些构造函数分享一些代码的最佳方法是什么?

CJ7*_*CJ7 34 c# constructor

VS2005中的C#:如果一个类有两个构造函数,那么这些构造函数分享一些代码的最佳方法是什么?

例如.我怎么能避免在以下两个构造函数中使用x = 5y = 10行:

public class MyObject {

int x;
int y;
int z;

public MyObject() {
    x = 5;
    y = 10;
}

public MyObject(int setZ) {
    x = 5;
    y = 10;
    z = setZ;
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*Rob 63

只是链接到常见的构造函数...

public MyObject(int setZ)
  : this()
{
  z = setZ;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果继承了类,这是否会导致执行基础构造函数? (5认同)

Mat*_*hen 8

使用this()语法.

public MyObject(int setZ) : this() {
    z = setZ;
}
Run Code Online (Sandbox Code Playgroud)


Ale*_*ler 5

创建另一种方法:

private setDefaultNumbers() {
    x = 5;
    y = 10;
}
Run Code Online (Sandbox Code Playgroud)

然后让两个版本的构造函数调用此方法:

public MyObject() {
    setDefaultNumbers();
}

public MyObject(int setZ) {
    setDefaultNumbers();
    z = setZ;
}
Run Code Online (Sandbox Code Playgroud)