任何人都可以告诉我是否有一种方法可以使用泛型来限制泛型类型参数T
:
Int16
Int32
Int64
UInt16
UInt32
UInt64
我知道的where
关键字,但无法找到一个接口只有这些类型,
就像是:
static bool IntegerFunction<T>(T value) where T : INumeric
Run Code Online (Sandbox Code Playgroud) 我正在写一个DataStructure<T>
持久存在磁盘上的通用,我需要写它,T
以保证可以在固定的字节数中序列化.例如,int
并且char
应该被接受,但string
还是int[]
不应该.同样,struct
带有string
成员的a 是不可接受的,但unsafe struct
带有fixed char
数组的是.
我可以使用反射在初始化程序中编写运行时测试并sizeof
测试每个成员,但这似乎是一个可怕的黑客.有没有有效的(相对)安全的方法来做到这一点?