Вызов базового класса из двух уровней производного классаC#

Место общения программистов C#
Anonymous
Вызов базового класса из двух уровней производного класса

Сообщение Anonymous »

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

Код: Выделить всё

public class Level1
{
public virtual void Encrypt(byte[] plain)
{
Console.WriteLine("level1");
}
}

public class Level2: Level1
{
public override void Encrypt(byte[] plain)
{
Console.WriteLine("level2");
Console.WriteLine("Calling base class");
base.Encrypt(plain);
}
}

public class Level3: Level2
{
public override void Encrypt(byte[] plain)
{
Console.WriteLine("Level3");
// Level2
base.Encrypt(plain);
// How do I call Encrypt from Level1?
base.base.Encrypt(plain);
}
}
Следующее сообщение содержит синтаксические ошибки

Код: Выделить всё

base.base.Encrypt(plain)
CryptECB.Encrypt(plain)
Как вызвать переопределенную функцию на двух или более уровнях наследования? В качестве обходного пути я определил L1Encrypt на уровне 2 и вызвал его на уровне 3, но это беспорядочно, поскольку мне, возможно, придется делать это для различных функций на разных уровнях.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ived-class

Вернуться в «C#»