Переопределение значения по умолчанию в производном классе (c #) - PullRequest
3 голосов
/ 18 августа 2010

Если у меня есть метод доступа и свойство по умолчанию в базовом классе, как показано ниже:

class base{
protected int _foo = 5;
public int foo {get{return _foo;}set{_foo = value;}}
}

Затем я получаю этот класс, возможно ли переопределить значение по умолчанию _foo?

class derived:base{
// foo still returns 5?
protected new int _foo = 10;
}

Ответы [ 3 ]

6 голосов
/ 18 августа 2010

Оператор _foo = 5 эффективно выполняется в конструкторе базового класса.Вы можете добавить код в конструктор производного класса, который сразу после этого изменяет значение foo:

class derived:base{
    public derived()
    {
        foo = 10;
    }
}
2 голосов
/ 18 августа 2010

Вы можете использовать конструктор для инициализации производного класса и установки свойства _foo базовых типов:

class derived:base
{
    public derived()
    {
        this._foo = 10;
    }
}
1 голос
/ 18 августа 2010

Вы можете создать недвижимость:

protected virtual int _foo { get { return 5; } }

и

protected override int _foo { get { return 10; } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...