C#中的原始类型名称是什么?是的,我们有类似的答案,但只提及类型,而不是类型名称: https://stackoverflow.com/a/13530321/3691653
E.g。它提到的类型包括System.Int32
和System.Single
,但不是类型名int
和float
,它们也会为我编译。那么什么是类型名称的完整列表,包括其别名?
换句话说,我对需要Nullable<>的非可空类型名/类型名感兴趣。关键字,以便能够设置为null。
答案 0 :(得分:1)
喜欢这些:
alias type (in System namespace)
byte Byte
sbyte SByte
short Int16
ushort UInt16
int Int32
uint UInt32
long Int64
ulong UInt64
decimal Decimal
float Single
double Double
阅读其余内容
答案 1 :(得分:0)
需要Nullable<>
的原始类型和类型名称是两个完全不同的东西。
声明为struct
而不是class
的任何内容都是不可为空的,并且需要将Nullable<>
包裹起来才能设置为空。
A&#34;完整清单&#34;是不可能的,因为任何人都可以写自己的结构。
答案 2 :(得分:0)
如果你想知道的是一个给定的Type是否可以被包装成Nullable&lt;&gt;与否,它等同于询问它是否是值类型:
Type someType = typeof(int); // then, try to change this to "typeof(string)"
Type someTypeNullable = null;
if (someType.IsValueType)
{
someTypeNullable = typeof(Nullable<>).MakeGenericType(someType);
}
if (someTypeNullable != null)
{
Console.WriteLine("nullable version: " + someType + "?");
}
else
{
Console.WriteLine(someType + " is a reference type");
}