Использовать переданный тип внутри метода в конструкции is Type - C#
Формулировка задачи:
Ребята, никак не могу сообразить.
Допустим, есть абстрактный класс A, от которого наследуются 3 ребенка B, C, D.
Есть массив из A[]; В нем лежат вразнобой В, С, D.
Я хочу сделать примитивную вещь - ОДИН метод для подсчета количества в массиве элементов каждого типа.
В параметре ему указать Type type, на выходе получить int.
Только вот ни в какую внутри метода if (elem is type) срабатывать не хочет.
Что я делаю не так?
Идея примерно такова:
Тяжко С# с его типизацией после JS идет...
public delegate int Counter(A[] array, Type type); Counter c = (array, type) => { int result = 0; foreach (A a in array) { if (a is type) // Doesn't work!!! Не видит от этот type хоть убей... { result++; } } return result; } // где-то в main A[] = new A[]{new B(), new C()}; Console.WriteLine(c(array, B)); Console.WriteLine(c(array, C));
Решение задачи: «Использовать переданный тип внутри метода в конструкции is Type»
textual
Листинг программы
Counter c = (array, type) => { int result = 0; foreach (A a in array) { if (a.GetType().Equals(type)) { result++; } } return result; };
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д