Использование "as" с динамическим типом - C#
Формулировка задачи:
Как сделать что бы тип сам определялся?
Или как сделать что бы вызывался нужный конструктор без использования "if"?
void X(Mem m) { //Сюда передаются только экземпляры типа Num или Var new Calc(m as (Num или Var))//Как сделать что бы тип сам определялся? } class Mem{} class Num : Mem{} class Var : Mem{} class Calc { public Calc (Num ob){} public Calc (Var ob){} }
Решение задачи: «Использование "as" с динамическим типом»
textual
Листинг программы
class Calc { public void Method(Mem ob) { ob.Eval(this); } public void Method(Num ob) { Console.WriteLine("Num"); } public void Method(Var ob) { Console.WriteLine("Var"); } } abstract class Mem { public abstract void Eval(Calc c); } class Num : Mem { public override void Eval(Calc c) { c.Method(this); } } class Var : Mem { public override void Eval(Calc c) { c.Method(this); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д