c# - 用作泛型参数时调用双“==”运算符
问题描述
有什么方法可以获取通用参数的双“==”运算符?请注意,.Equals 并非在所有情况下都能正常工作。
鉴于:
bool MyMethod<T>(T left, T right)
{
return EqualityComparer.Default.Equals(left,right);
}
然后:
double a = double.NaN;
double b = double.NaN;
a == b; //returns false
MyMethod(a,b); //returns true
我想获得所有类型 T 的实际“==”运算符。这可能吗?
我已阅读不能将运算符 == 应用于 C# 中的泛型类型?并且它没有解决我的情况,因为最佳答案建议使用 EqualityComparer.Default 但是在比较两个 double.NaN 值时不会返回数学上正确的值。
解决方案
推荐阅读
- python - Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙?
- python - 在 PySpark StructStream 中,如何查找组中的每一行与上一行之间的时间差
- reactjs - 自动完成 - MaterialUI - 受控组件不起作用
- c - 如何解决 C 中的 gets() 函数的问题?
- javascript - 如何使用 ReactJS 钩子设置输入值?
- c++ - 调用者和被调用者中数组元素的值不同
- sas - 为唯一记录设计新的 RK 编号
- vue.js - Vuex Computed 属性中的错误已分配给但它没有设置器
- java - Eclipse 文件夹中的圆形取消标志是什么意思?
- javascript - 如何从一个包含对象的大数组中获取两个单独的数组?