我想编写一个可以接受任何数字的 C# 方法。就像是:
public static T Sum(T a, T b) where T : number { // (not real code)
return a + b;
}
但我在 C# 中没有看到“数字”基类,而我使用过的大多数其他语言中都存在这种基类。数值类型有 IComparable、IFormattable、IConvertible、IComparable 和 IEquatable,但似乎没有任何算术功能。它们都是结构体,除了对象之外没有明显的共同超类。 (如果我搞砸了这里的含义,请原谅我,因为我不太熟悉 C# 结构以及它们与类的所有相似或不同之处。)
我是否遗漏了一些东西,或者是否不可能在 C# 中编写一个执行“a + b”的方法,而无需准确声明“+”上下文中的 a 和 b 是什么?
您将不得不诉诸使用重载。有点像Math
类正在做类似的功能Math.Max
它支持所有数字类型。
The link https://stackoverflow.com/questions/1267902/generics-where-t-is-a-numberCD提出的也是足智多谋的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)