Определение типа во время выполнения - C#
Формулировка задачи:
Подскажите пожалуйста, как во время выполнения проверить содержит ли переменная типа оператор +? Именно проверить, а не использовать dynamic и писать следующее:
Проблема примера выше в том, что если тип не содержит оператор + то будет выбрасываться ошибка.
public static T Add<T> (T a, T b) { dynamic _a = a; dynamic _b = b; return _a + _b; }
Решение задачи: «Определение типа во время выполнения»
textual
Листинг программы
interface IAddable<T> { T Add(T other); } static T Add<T>(T a, T b) where T : IAddable<T> { return a.Add(b); } struct Complex : IAddable<T> { public int Real { get; } public int Imaginary { get; } public Complex(int real, int imaginary) { Real = real; Imaginary = imaginary; } public Complex Add(Complex that) { return this + that; } public static Complex operator +(Complex a, Complex b) { return new Complex(a.Real + b.Real, a.Imaginary + b.Imaginary); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д