5

사용자가 멤버 변수를 수정하여 멤버 함수의 기본 인수를 변경할 수있는 클래스를 만들려고합니다.동적 기본 인수를 갖는 방법이 있습니까?

지금까지 해결 방법은 이상한 마법 번호를 사용하는 것이 었습니다.

public void Method(int Argument = 123) 
{ 
    int RealArgument; 

    if (Argument == 123) RealArgument = Member; 
    else RealArgument = Argument; 
} 

더 좋은 방법이 있습니까, 아니면이 "해킹"솔루션을 고수하고 있습니까?

답변

7

그래, 기본 인수에 대해 잊어 버려.

class Class 
{ 
    public int Member; 

    public void Method(int Argument) 
    { 
     ... 
    } 

    public void Method() 
    { 
     Method(Member); 
    } 
} 

여기에 속임수는 필요하지 않습니다.

+0

많은 인수에서 실용적이지는 않지만 믹스 인은 자동으로 코드를 생성 할 수 있습니다. – Maxpm

+0

가변 템플릿과 신중한 명명을 사용하면 기본 함수와 단일 래퍼 템플릿만으로 그 효과를 얻을 수 있습니다. – BCS