Есть ли способ иметь динамические аргументы по умолчанию?

Я пытаюсь создать класс, в котором пользователь может изменять переменные-члены, чтобы изменить аргументы по умолчанию для его функций-членов.

class Class
{
    public int Member;

    public void Method(int Argument = Member)
    {
        // This compiles fine, until I try to actually use
        // the method elsewhere in code!

        // "Error: need 'this' to access member Member"
    }
}

Моим обходным путем до сих пор было использование магических чисел, что явно не идеально.

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

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

Есть ли способ лучше, или я застрял на этом "взломанном" решении?

5
задан Maxpm 10 October 2011 в 14:01
поделиться