Есть ли более чистый способ проверить, является ли тип неотъемлемой частью?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли более чистый способ проверить, является ли тип неотъемлемой частью?

Сообщение Anonymous »

В настоящее время код, который мы можем написать, чтобы проверить это, просто перечисляя все возможные типы для так называемого интегрального < /code>, например: < /p>

public static bool IsIntegral(this Type type)
{
return type == typeof(int) || type == typeof(uint) ||
type == typeof(short) || type == typeof(ushort) ||
type == typeof(long) || type == typeof(ulong) ||
type == typeof(byte);
}
< /code>

Интересно, есть ли какой -то лучшим и более чистым способом, который не должен включать какую -либо трюк с преобразованием в /из строки (я думаю, не будет работать хорошо, даже мы должны создавать какой -то фиктивный экземпляр с использованием активатора < /code>). < /p>

Это жаркость, что что -то вроде этого не будет работать: < /p>

Это жаль, что что -то вроде этого не будет работать: < /p>

Это жаркость.typeof(long).IsAssignableFrom(type);
< /code>

Хотя на самом деле в коде мы можем написать что -то вроде этого: < /p>

int i = 5;
long l = i;//this looks much like long can be assignable from int
< /code>

Но на самом деле они (Long и int) не имеют здесь никаких отношений наследования, компилятор, кажется, делает некоторое волшебное автоматическое качество для того, чтобы приведенный выше код был действительным. < /p>

Подробнее здесь: https://stackoverflow.com/questions/565 ... s-integral
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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