Описание виртуальной функции вне тела класса - C#
Формулировка задачи:
Добра.
Такой вопрос:
Пускай у меня есть абстрактный класс Animal. У него есть виртуальная функция Voice.
Могу ли я для класса Dog как-то описать эту функцию, но в ходе выполнения программы, в зависимости от введённых данных.
(Пример очень условный)
Спасибо.
Решение задачи: «Описание виртуальной функции вне тела класса»
textual
Листинг программы
namespace ConsoleApplication1 { abstract class Algorithm { abstract public string Encrypt(string text); abstract public string Decrypt(string text); } class AES : Algorithm { public override string Encrypt(string text) { return "IN AES ENCRYPT"; } public override string Decrypt(string text) { return "IN AES DECRYPT"; } } class VIG : Algorithm { public override string Encrypt(string text) { return "IN VIG ENCRYPT"; } public override string Decrypt(string text) { return "IN VIG DECRYPT"; } } class UserAlg : Algorithm { public delegate string AlgorithmDelegate(string text); private AlgorithmDelegate encrypt; private AlgorithmDelegate decrypt; public UserAlg(AlgorithmDelegate encrypt, AlgorithmDelegate decrypt) { this.encrypt = encrypt; this.decrypt = decrypt; } public override string Encrypt(string text) { return encrypt(text); } public override string Decrypt(string text) { return decrypt(text); } } class Program { static void Main(string[] args) { AES aes = new AES(); VIG vig = new VIG(); UserAlg ua = new UserAlg(aes.Encrypt, vig.Decrypt); Console.WriteLine(ua.Encrypt("")); Console.WriteLine(ua.Decrypt("")); UserAlg ua2 = new UserAlg((s) => { return "MY ENCRYPT"; }, (s) => { return "MY DECRYPT"; }); Console.WriteLine(ua2.Encrypt("")); Console.WriteLine(ua2.Decrypt("")); Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д