我有以下具有通用类型的方法:
T GetValue<T>();
我想将T限制为基本类型,例如int,string,float,但不限于类类型。我知道我可以为这样的类类型定义泛型:
C GetObject<C>() where C: class;
我不确定原始类型是否可行,如何确定。
Answers:
您可以使用它来将其限制为值类型:
where C: struct
您还提到了字符串。不幸的是,不允许使用字符串,因为它们不是值类型。
n1 + n2
n1和n2都属于类型的方法C
,则会抛出错误:Operator '+' cannot be applied to operands of type 'C' and 'C'
这是您要查找的内容:
T GetObject<T>() where T : struct;
struct
要求,是吗?
int
,float
等不Int32
,Int64
,Single
等等。虽然class
表示ref类型“而不是类类型”被暗示非托管和托管基元之间的区别。