C # Может ли свойство базового класса быть вызвано из производного класса - PullRequest
15 голосов
/ 24 февраля 2011

У меня есть базовый класс со свойством, у которого есть метод установки. Есть ли способ вызвать установщик в базовом классе из производного класса и добавить к нему некоторые дополнительные функции, как мы это делаем с переопределенными методами, использующими ключевое слово base.

Извините, я должен был добавить пример. Вот пример. Надеюсь, я правильно понял:

public class A 
{
    public abstract void AProperty 
    {
        set 
        {
            // doing something here
        }
    }
}

public class B : A 
{   
    public override void AProperty 
    {
        set 
        {
            // how to invoke the base class setter here

            // then add some more stuff here
        }
    }   
}

1 Ответ

25 голосов
/ 24 февраля 2011

РЕДАКТИРОВАТЬ : пересмотренный пример должен демонстрировать порядок вызовов.Компилировать как консольное приложение.

class baseTest 
{
    private string _t = string.Empty;
    public virtual string t {
        get{return _t;}
        set
        {
            Console.WriteLine("I'm in base");
            _t=value;
        }
    }
}

class derived : baseTest
{
    public override string t {
        get { return base.t; }
        set 
        {
            Console.WriteLine("I'm in derived");
            base.t = value;  // this assignment is invoking the base setter
        }
    }
}

class Program
{

    public static void Main(string[] args)
    {
        var tst2 = new derived();
        tst2.t ="d"; 
        // OUTPUT:
        // I'm in derived
        // I'm in base
    }
}
...