Есть такой Метод
List<T> GetAll<T>() where T : IModel
И набор классов реализующих интерфейс IModel
Вот использование такого метода:
var users = GetAll<User>();
var custommers = GetAll<Custommer>();
Как мне в методе GetAll проверить какому именно классу принадлежит T? Я пробовал так, но компилятор ругается
List<T> GetAll<T>() where T : IModel
{
if(T.GetType() == User)
//some Code
}
С# язык с сильной типизацией и имеет набор методов и операторов, позволяющих получить тип Сущности. Есть метод object.GetType который возвращает тип существующего объекта.
var user = new User();
user.GetType(); // вернёт объект типа type который описывает тип User.
А так же существует оператор typeof который работает на уровне классов:
var user = new User();
typeof(user/*objectName*/); // ERROR
typeof(User/*className*/);// всё ок
Решение моей задачи:
if (typeof(T) == typeof(Tarif))
//some code
else
//other code
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости