Приведение значения к T в универсальном методеC#

Место общения программистов C#
Ответить
Гость
 Приведение значения к T в универсальном методе

Сообщение Гость »


У меня есть интерфейс для скрипучей карты свойств:

интерфейс IPropertyMap { bool Exists (строковый ключ); int GetInt (строковый ключ); строка GetString (строковый ключ); //и т. д.. } Я хочу создать такой метод расширения:

public static T GetOrDefault(эта карта IPropertyMap, строковый ключ, T defaultValue) { если (!map.Exists(ключ)) вернуть значение по умолчанию; еще { if (typeof(T) == typeof(int)) return (T)map.GetInt(key); //и т. д.. } } Но компилятор не позволяет мне привести тип к T. Я попробовал добавить where T : struct, но это, похоже, не помогает.

Что мне не хватает?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»