나는 C++ 프로그래머라서 그런지 C#의 문법적인건 가끔 까먹는 경우가 많다.


C++의 경우에는 부모 클래스의 생성자를 자식 클래스의 생성자에서 호출할때는 이니셜라이저에 부모 클래스 이름으로 호출해주면 됐었다.


C++의 경우

class Parent;
{
private:
    int i;
public:
    Parent(int i) : i(i) {  }
}

class Child : public Parent
{
private:
    int j;
public:
    Child(int i, int j) : Parent(i), j(j) {  }    // 부모의 이름으로 부모의 생성자를 호출할 수 있다.
}


하지만 C#의 경우는 약간 달라서 부모 클래스의 이름으로는 부모 클래스의 생성자를 호출할 수 없고 base 키워드를 사용해야 한다.


C#의 경우

public class Parent;
{
    private int i;

    public Parent(int i)
    {
        this.i = i;
    }
}

public class Child : Parent
{
    private int j;

    public Child(int i, int j) : base(i)    // 부모 클래스의 생성자를 호출하려면 base 키워드를 사용해야 한다.
    { 
        this.j = j;
    }
}


C# 프로그래밍 책을 한 번 훑어보면서 봤던 내용인데 C#코딩을 자주하는 편은 아니라 정확한 방법을 까먹어서 다시 찾아보게 되었다.

반응형

+ Recent posts