C#: 클래스에 두 개의 생성자가있는 경우 이러한 생성자가 일부 코드를 공유하는 가장 좋은 방법은 무엇입니까?



constructor 뜻 (4)

this() 구문을 사용하십시오.

public MyObject(int setZ) : this() {
    z = setZ;
}

이 질문에는 이미 답변이 있습니다.

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;
}

일반적인 생성자에 체인 연결 만하면 ...

public MyObject(int setZ)
  : this()
{
  z = setZ;
}

다른 방법을 만듭니다.

private setDefaultNumbers() {
    x = 5;
    y = 10;
}

그런 다음 두 버전의 생성자에서이 메서드를 호출합니다.

public MyObject() {
    setDefaultNumbers();
}

public MyObject(int setZ) {
    setDefaultNumbers();
    z = setZ;
}

방법을 사용하는 것과 매우 비슷합니다. 일반적으로 다음과 같은 작업을 수행합니다.

public void SetA(int a)
{
    this.a = a;
}

public void SetAandB(int a, int b)
{
    this.SetA(a);
    this.b = b;
}

생성자에는 특별한 구문이 있습니다.

public void MyObject()
{
    this.a = 5;
}

public void MyObject(int b)
    : this()
{
    this.b = 10;
}




constructor