C# 数字基类 [重复]

2023-12-22

我想编写一个可以接受任何数字的 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(使用前将#替换为@)

C# 数字基类 [重复] 的相关文章

  • Automapper、Mapper 未初始化。使用正确的配置调用初始化

    当我尝试将数据提交到数据库时 出现以下错误 Success false Error true ErrorType 2 Message System InvalidOperationException Mapper 未初始化 使用适当的配置调
  • asp:repeater 折叠表行 - 已更新

    我想知道是否有人对我的问题有创造性的解决方案 我有一个从我的数据库填充的转发器 如下所示
  • Qt 和 Sqlite 示例

    我正在寻找一些使用 Qt 的示例代码 它是带有 Sqlite 驱动程序的 SQL 模块 我需要示例的主要原因是我之前有 Qt 数据库接口的经验 并且 Sqlite 在字段类型方面有一些奇怪的行为 类型是按字段存储的 而不是按列存储的 The
  • 集群():是否可以仅检查文件是否已锁定,而不实际获取锁定(如果没有)?

    我的用例如下 我有一个程序 它强制在任何给定时间只能运行它的一个实例 因此在启动时它总是尝试在标准位置获取锁定文件 并在该文件终止时终止已经被锁定 这一切都工作正常 但现在我想用一个新的命令行选项来增强程序 当指定该选项时 将导致程序只打印
  • 地图类容器的专用功能

    我想要专门为矢量和地图之类的容器设计一个函数模板 对于向量 我可以像下面那样做 但我不知道如何才能有一个专门版本的函数 该函数仅用于像地图这样的容器 include
  • 使用 C 的另一个结构内的灵活长度结构数组

    你好 我正在尝试使用 C 来实现一个简单的结构 2 个盒子 每个盒子包含不同数量的颗粒 main 中传递的粒子的确切数量 我写了以下代码 typedef struct Particle float x float y float vx fl
  • 图片框、双击和单击事件

    我有一个奇怪的问题 我有一个图片框双击事件以及单击事件 问题是即使我双击该控件 也会引发单击事件 如果我禁用单击事件 则双击事件正在工作 这个问题已经在这里讨论过 https stackoverflow com questions 1830
  • 如何在单例类和未命名类之间进行选择?

    我会使用这样的单例 Singleton single Singleton instance single gt do it 我会使用这样的未命名类 single do it 我觉得单例模式除了具有可读的错误消息之外 与未命名的类相比没有任何
  • MVC BaseController 处理 CRUD 操作

    我想重构我的基本 CRUD 操作 因为它们非常重复 但我不确定最好的方法 我的所有控制器都继承 BaseController 如下所示 public class BaseController
  • 如何在 C++11 中返回类成员向量

    我读了几篇关于如何从方法返回向量的文章 其中包括 c11 右值和移动语义混淆返回语句 https stackoverflow com questions 4986673 c11 rvalues and move semantics conf
  • 绑定集合的子集

    我有一个ObservableCollection
  • 对象变空似乎是 Hangfire 中的反序列化问题

    Hangfire 似乎无法反序列化我的原始版本Scheduler对象及其所有状态 我正在调用其 Execute 方法BackgroundJob Enqueue 如下所示 Scheduler new FileInFileOut FileIn
  • 向客户端发送状态码 500 时页面未呈现

    我有一个页面 通用处理程序 我想在该页面上向客户端返回状态代码 500 以指示出现问题 我这样做 Response StatusCode 500 Response StatusDescription Internal Server Erro
  • 如何通过分解 y 轴来减小 mschart 的高度

    如何降低 mschart 的高度 如下所示 编辑 就我而言 我不想查看中断图表 this chart1 ChartAreas 0 AxisY ScaleBreakStyle Enabled false 您似乎正在寻找AxisY ScaleB
  • 在 OSX 上检测 Objective C 或 C++ 中的文件夹访问(如 fs_usage 命令)

    我正在 OSX 上开发实时病毒扫描程序 OSX 的命令行命令fs usage可以通过以下方式确定文件夹访问权限 并且只能以 root 用户身份运行 fs usage w f pathname grep Users Documents Use
  • Microsoft Visual Studio 2017 中的 wxWidgets 设置

    我花了大约 20 个小时试图弄清楚如何在 Microsoft Visual Studio 2017 中设置 wxWidgets 我遵循 https wiki wxwidgets org Microsoft Visual C 2B 2B Gu
  • C 中的 2 个字符要短

    我有2个字符 Char 128和查尔2 如何将这些字符转为 Short640 in C 我试过了 unsigned short getShort unsigned char array int offset short returnVal
  • 使用属性和性能

    我正在优化我的代码 我注意到使用属性 甚至自动属性 对执行时间有深远的影响 请参阅下面的示例 Test public void GetterVsField PropertyTest propertyTest new PropertyTest
  • 如何正确处置注入的DLL线程?

    我将一个 DLL 注入到目标进程中 以在玩 MMORPG 时充当助手 当前功能将按键转换为鼠标点击 因为 MMORPG 要求用户移动鼠标才能实现某些功能 这是我所鄙视的 假设我出于某种原因想要取消注入 DLL 我该怎么做呢 这个方法干净吗
  • 获取线段上最接近另一个点的点[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想找到线段AB上最接近另一个点P的点 我的想法是 Get a1 and b1由直线公式y1 a1x b1 使用 A 点

随机推荐

  • 无法查看 Xcode 4.2 帮助“index.html”被锁定以进行编辑

    当我尝试在 Xcode 中搜索文档时 出现以下错误 index html 已被锁定进行编辑 您可能无法保存更改 你想解锁它吗 index html 目前已被锁定 因为它不支持编辑 文件 index html 无法解锁 无法向该文件添加写入权
  • AWS RedShift - .NET Core(ODBC 支持?)

    如何使用 NET Core 连接 AWS RedShift 并运行查询 请提供代码示例 我已经阅读了 AWS 文档和 Net Core 文档 但没有运气 这个答案是针对特定时间点的 不会过时 EntityFramework Core 项目是
  • Google Map APi 缩放栏未显示

    Google 地图 api 没有完全显示缩放栏和图像类型 而是仅显示用于放大和缩小的加减按钮以及用于选择地图类型的下拉按钮 网址是http booking smanager net design index php lv 2 http bo
  • Python - 获取浏览器重定向到的url

    我正在尝试使用 API 验证应用程序 就是这样 我正在使用打开一个 URLwebbrowser open 用户对应用程序进行身份验证 并被重定向到另一个 URL 即 https stackexchange com oauth login s
  • 递归下降解析器和函数式编程

    所以最近我一直致力于编写一个简单的编译器 以更好地理解编译器概念 作为 stackoverflow 的忠实读者 似乎有一个共识 用函数式语言编写编译器比命令式语言更容易 为此 我想尝试一下杀两只鸟 用 F 编写一个编译器 既学习函数式语言
  • 如果ListBox包含,则不添加

    我有一个方法 FillListBox 我从不同的地方调用这个方法 但有时会发生这种情况 东西被加载了两次 现在我正在尝试做类似的事情 if listBox Items 1 ToString hello DO NOT FILL else FI
  • 修复 shell 脚本以增加 semversion [重复]

    这个问题在这里已经有答案了 我从未使用过 shell bash 但在脚本中发现了一些错误 我用它来增加版本 脚本工作正常 直到这种情况 version 1 27 9 echo version awk F v OFS NF 1 print N
  • Java 和 Clojure 与 Leiningen

    是否可以在使用 leiningen 的项目中轻松管理和编译本机 Java 类以及 Clojure 我的工作水平相当低 使用 netty nio 并且认为一些管道类实际上在构建代码和性能方面更容易作为原始 java 进行处理 从 Leinin
  • 控制器可以将接口实例作为参数吗? ASP.NET MVC

    ASP NET 控制器操作方法可以将接口作为参数之一吗 我想要这样的东西 class MyController HttpPost public ActionResult Action IMyModel model 是否可以 显然 我必须告诉
  • MonitorFilter::警告:监视器过滤器必须是链中的第一个过滤器

    Tomcat从8 0 5升级到8 0 9 0后 从浏览器访问页面时 Tomcat服务器在服务器终端上记录以下警告 MonitorFilter WARNING the monitor filter must be the first filt
  • C++ 上的 SendInput 不考虑 Ctrl 和 Shift

    I m trying to send a CTRL SHIFT END key stroke to a control in a C application written with Embarcadero I m using the co
  • Spring Data r2dbc 和分页

    我正在使用新的 spring data r2dbc 模块 并且我能够使用 ReactiveCrudRepository 提取数据 现在我需要引入分页 但我无法做到这一点 我尝试过这个 public interface TestReposit
  • Vim:在更改和重新加载文件后维护文件的历史记录

    如果我在 Vim 中编辑文件 那么某些外部程序会更改该文件 Vim 告诉我 W11 Warning File test erl has changed since editing started See help W11 for more
  • 如何升级sqlite数据库文件

    我正在做一个使用资产文件夹中的 sqlite db 文件的应用程序 我的应用程序中有一个屏幕 其中有一个按钮 检查更新 客户给了我一个 URL 链接来更新 db 文件 它提供了一个 sqlite 文件 当用户单击按钮时 我需要使用 URL
  • 存储 jtree 的状态/扩展节点以恢复状态

    我正在使用 JTree 我想知道了解 JTree 中扩展哪些节点以保存其状态 即保存所有扩展路径 的最佳方法是什么 所以如果我打电话model reload Jtree 不会保持折叠状态 但我将能够向用户恢复其原始状态 即所有展开的节点都将
  • 如何使用正则表达式提取短语和分号之间的文本

    我的文本文件中有多个文本行 我需要提取特定的值 我刚刚开始学习正则表达式 并尝试在这种情况下使用它 要提取的值是数字 但可以是整数或具有不同小数位的小数 下面显示了文本行的两个示例 settings parameterName1 15 0
  • Typescript noEmit 用例

    用途是什么noEmit在打字稿中 我很感兴趣 因为我想看看是否可以使用它进行开发 在其中编译并运行编译后的代码 而不将它们输出到文件系统上 这样会更有效 编辑 也许这会很直接 我可以使用noEmit打字稿中的标签来编译和运行代码而不将它们输
  • 如何通过formGroupName直接访问控件

    在此表单中 我必须访问 formControlName last 的控件以显示它的错误 div div div div
  • 导航栏标题对齐问题

    我已将自定义视图设置为导航栏标题视图 当页面为第一个时 视图控制器标题正确显示在中心 但是当视图控制器从另一个视图控制器推送时 标题会向右移动 Code void setUpTwoLineNavigationTitle CGFloat wi
  • C# 数字基类 [重复]

    这个问题在这里已经有答案了 我想编写一个可以接受任何数字的 C 方法 就像是 public static T Sum T a T b where T number not real code return a b 但我在 C 中没有看到 数