将泛型类型参数约束为数值类型

Yes*_*ke. 5 c# generics

我正在定义一个泛型类型:

public class Point<T> where T : IConvertible, IComparable
Run Code Online (Sandbox Code Playgroud)

我真正想做的是将T限制为数字类型(int或浮点之一.)CLR中没有INumeric.是否有接口或接口集合可用于将类型约束为其中一个盒装数字类?

Ree*_*sey 11

很不幸的是,不行.这是很长一段时间以来一直备受关注的功能.

现在,最好的选择可能是使用:

where T : struct, IConvertible, IComparable<T>
Run Code Online (Sandbox Code Playgroud)

(结构约束可防止字符串使用......)

但是,这仍然允许使用任何实现适当约束的用户定义值类型.