Вы можете использовать функцию ] typeof (T)
?
Итак, чтобы проверить строку, выполните
if (typeof (T) == typeof (string))
// сделайте что-нибудь
Это почти наверняка недостаток в конструкции вашей функции, если вам нужно получить тип параметра универсального типа; Это противоположность слова «общий». Следовательно, используйте вместо этого перегрузку.
Кроме этого, Unsliced уже дал правильный ответ на определение типа T
.
На самом деле существует 2 метода, выполняющих это, если ожидаемые классы являются производными от одного и того же класса, интерфейса или абстрактного класса, вы можете легко сделать это в Generic Signature
T GetValue (), где T: class, это заставит целые T-типы стать ссылочными типами. Или T GetValue (), где T: IDisposable, это заставит целые T-типы реализовать IDisposable.
для вашего случая typeof (T) решит ваши проблемы, но в этом случае сделайте метод не универсальным.