相关疑难解决方法(0)

是否存在将我的泛型方法限制为数字类型的约束?

任何人都可以告诉我是否有一种方法可以使用泛型来限制泛型类型参数T:

  • Int16
  • Int32
  • Int64
  • UInt16
  • UInt32
  • UInt64

我知道的where关键字,但无法找到一个接口只有这些类型,

就像是:

static bool IntegerFunction<T>(T value) where T : INumeric 
Run Code Online (Sandbox Code Playgroud)

c# generics constraints

350
推荐指数
11
解决办法
10万
查看次数

如何确保T可以按固定的字节数进行序列化?

我正在写一个DataStructure<T>持久存在磁盘上的通用,我需要写它,T以保证可以在固定的字节数中序列化.例如,int并且char应该被接受,但string还是int[]不应该.同样,struct带有string成员的a 是不可接受的,但unsafe struct带有fixed char数组的是.

我可以使用反射在初始化程序中编写运行时测试并sizeof测试每个成员,但这似乎是一个可怕的黑客.有没有有效的(相对)安全的方法来做到这一点?

c# generics struct unsafe

5
推荐指数
1
解决办法
163
查看次数

标签 统计

c# ×2

generics ×2

constraints ×1

struct ×1

unsafe ×1