Лучший способ протестировать, если универсальный тип является строкой? (C#)

Не встроен в Javascript. Некоторые из общих фреймворков Javascript (например, Prototype) предоставляют реализацию, или вы можете написать свой собственный.

90
задан wonea 13 June 2017 в 14:59
поделиться

3 ответа

Следует иметь в виду, что значение по умолчанию (строка) является пустым, не представляют в виде строки. Пустой. Можно хотеть особый случай в коде:

if (typeof(T) == typeof(String)) return (T)(object)String.Empty;
152
ответ дан Matt Hamilton 24 November 2019 в 07:03
поделиться
if (typeof(T).IsValueType || typeof(T) == typeof(String))
{
     return default(T);
}
else
{
     return Activator.CreateInstance<T>();
}

Непротестированный, но первая вещь, которая пришла на ум.

14
ответ дан Rex M 24 November 2019 в 07:03
поделиться

Можно использовать перечисление TypeCode . Назовите метод GetTypeCode на классах, которые реализуют интерфейс IConvertible для получения кода типа для экземпляра того класса. IConvertible реализован булевской переменной, SByte, Байтом, Int16, UInt16, Int32, UInt32, Int64, UInt64, Единственным, дважды, Десятичным, DateTime, Символ и Строка, таким образом, можно проверить на типы примитивов с помощью этого. Больше информации о" Универсальный Тип, Проверяющий ".

4
ответ дан Community 24 November 2019 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: