Неужели на C# такое не сделать???
От: IvanM Россия  
Дата: 09.12.03 06:05
Оценка:
Всем привет.

На С++ это выглядит вот так:

class Control
{
protected:
    virtual void SomeMethod()
    {
        //Делает то, что нужно
    }
};

class SomeStandatdControl : public Control
{
protected:
    virtual void SomeMethod()
    {
        //Делает не то, что нужно
    }
};

class MyControl : public SomeStandatdControl
{
protected:
    virtual void SomeMethod()
    {
        //Вот тут вызов нужного метода через явную квалификацию
        Control::SomeMethod();
    }
};

А теперь вопрос, как такое написать на шарпе?

public class Control
{
    protected virtual void SomeMethod()
    {
        //Делает то, что нужно
    }
}

public class SomeStandatdControl : Control
{
    protected override void SomeMethod()
    {
        //Делает не то, что нужно
    }
}

public class MyControl : SomeStandatdControl
{
    protected override void SomeMethod()
    {
        //Как тут вызвать Control.SomeMethod???
        Control.SomeMethod(); // Error: Cannot access protected member 
        (this as Control).SomeMethod(); // Error: Cannot access protected member 
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.