按位运算符的通用约束

问题描述 投票:3回答:2

所以我有一个看起来像这样的类:

public class Foo<TKey>
{
   ...
}

我有一种使用TKey泛型的方法,如下:

public int Test(TKey val)
{
   return val | 5;
}

现在,我需要设置约束以确保TKey是一个数值,以便使用按位运算符。无论如何,您无法设置约束以确保它是一个数字值,因为short,int,double,...未实现类似INumeric的接口。

现在的问题是,只有限制条件,才有可能吗?

c# generics constraints generic-constraints
2个回答
0
投票

尝试此代码:


0
投票

泛型是关于允许地球上任何程序员可能抛出的所有Random类都输入T。但是,数字类型实际上是一个非常静态的列表。我从不希望程序员编写自己的数字类型。带有二元运算符的重载运算符的东西?也许很少。

© www.soinside.com 2019 - 2024. All rights reserved.