C# 数字基类

标签 c# polymorphism numbers

<分区>

我想编写一个可以接受任何数字的 C# 方法。像这样的东西:

public static T Sum(T a, T b) where T : number {  // (not real code)
    return a + b;
}

但我在 C# 中没有看到“数字”基类,而在我使用过的大多数其他语言中都存在。数值类型是 IComparable、IFormattable、IConvertible、IComparable 和 IEquatable,但似乎没有任何算术功能。它们都是结构,除了对象之外没有明显的公共(public)父类(super class)。 (如果我搞砸了这里的意思,请原谅我,因为我不太熟悉 C# 结构,也不太熟悉它们与类相似或不同的所有方式。)

我是不是遗漏了什么,或者是否无法在 C# 中编写执行“a + b”的方法而不明确声明“+”上下文中的 a 和 b 是什么?

最佳答案

您将不得不求助于重载。有点像 Math 类正在处理类似 Math.Max 的函数,它支持所有数字类型。

link CD提出的也是足智多谋。

关于C# 数字基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1375026/

相关文章:

types - Elm中的类型约束

ruby - 按字符和数字对数组进行排序

perl - 如何在 Perl 中将数字转换为文本?

c# - 在 Windows Phone 7 上通话失败,但在 Windows 和 Xbox 360 上可以正常工作

java - 为什么引用子类对象的父类类型引用变量不能访问子类的方法

c# - 当我在 C# 中使用 SqlConnection 时出现错误

c++ - C++中的抽象类

c# - 什么是十进制的 0x10?

c# - Dapper 可以处理可为空的 bool /位字段吗? [无效的]

c# - 为什么 MS 在新的 Windows 应用商店应用模板中去掉了 BindableBase?