Использование "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);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы