如何为具有类型参数约束的泛型类型编写扩展方法?

2024-03-02

我正在使用特定于任务的 .NET 平台,该平台是预编译的,而不是开源的。 对于某些任务,我需要扩展此类,但不是通过继承它。我只是想添加一个方法。

首先,我想向您展示一个虚拟代码现有类:

public class Matrix<T> where T : new() {
    ...
    public T values[,];
    ...
}

我想通过以下方式扩展这个类:

public static class MatrixExtension {
    public static T getCalcResult<T>(this Matrix<T> mat) {
        T result = 0;
        ...
        return result;
    }
}

我从许多谷歌链接中得到了这个语法,所以不知道它是否正确。编译器告诉我没有错误,但最终它不起作用。最后我想通过以下方式调用这个函数:

Matrix<int> m = new Matrix<int>();
...
int aNumber = m.getCalcResult();

那么有人有想法吗?感谢您的帮助!

问候内姆


您需要在扩展方法上添加相同类型的参数约束。

这是我对编译和运行示例的最接近重建的尝试,没有任何错误:

public class Matrix<T>  where T : new() {
     public T[,] values;
 }


 public static class MatrixExtension {
     public static T getCalcResult<T>(this Matrix<T> mat)  where T : new() {
         T result = new T();
         return result;
     }
 }

 class Program {
     static void Main(string[] args)  {
        Matrix<int> m = new Matrix<int>();
        int aNumber = m.getCalcResult();
        Console.WriteLine(aNumber); //outputs "0"
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为具有类型参数约束的泛型类型编写扩展方法? 的相关文章

  • 锁定 ASP.NET 应用程序变量

    我在 ASP NET 应用程序中使用第三方 Web 服务 对第 3 方 Web 服务的调用必须同步 但 ASP NET 显然是多线程的 并且可能会发出多个页面请求 从而导致对第 3 方 Web 服务的同时调用 对 Web 服务的调用封装在自
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 将设置函数(setter)标记为 constexpr 的目的是什么? [复制]

    这个问题在这里已经有答案了 我无法理解将 setter 函数标记为的目的constexpr 自 C 14 起这是允许的 我的误解来自以下情况 我使用 constexpr c tor 声明一个类 并且我将通过创建该类的 constexpr 实
  • 全局使用和 .NET Standard 2.0

    我最近意识到我可以使用 C 10 功能文件范围的命名空间在 NET Standard 2 0 项目中也可以通过设置
  • 为什么需要数字后缀?

    C 语言 我确信还有其他语言 需要在数字文字末尾添加后缀 这些后缀指示文字的类型 例如 5m是一个小数 5f是一个浮点数 我的问题是 这些后缀真的有必要吗 或者是否可以从上下文中推断出文字的类型 例如 代码decimal d 5 0应该推断
  • C# 编译器数字文字

    有谁知道 C 编译器数字文字修饰符的完整列表 默认情况下 声明 0 使其成为 Int32 声明 0 0 使其成为 Double 我可以在末尾使用文字修饰符 f 来确保某些内容被视为 Single 例如像这样 var x 0 x is Int
  • 通过 C# Mailkit / Mimekit 发送电子邮件,但出现服务器证书错误

    Visual Studio 2015 中的 0 代码 1 我正在使用 Mailkit 最新版本 1 18 1 1 从我自己的电子邮件服务器发送电子邮件 2 电子邮件服务器具有不受信任的自签名证书 3 我在代码中添加了以下两行 以忽略服务器证
  • 用于连接 DataTable 上的动态列的动态 LINQ

    我目前遇到的情况不确定如何继续 我有两个从数据库填充的数据表 我还有一个可用的列名称列表 可用于将这两个数据表连接在一起 我希望编写一组 LINQ 查询 这些查询将 显示两个数据表中的行 内部联接 用于从一个数据表更新另一个数据表 显示一个
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • 为什么不能调用带有 auto& 参数的 const mutable lambda?

    include
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J
  • 使用 xslt 将 xml 转换为 xsl-fo 时动态创建超链接?

    我想使用 xsl 文件在 PDF 报告中创建标题 如果源文件包含超链接 则应将其呈现为超链接 否则呈现为纯文本 例如 我的 xml 如下所示 a href http google com target blank This is the h
  • 在 Windows CE 6.0 与 Windows Mobile 6.1 下进行开发的权衡是什么

    我有一个 Windows NET 应用程序 我计划将其 移植 并定制为移动设备 该应用程序由一个独立的 NET 程序组成 该程序与条形码扫描仪配合使用 具有简单的 UI 并将扫描结果记录到文件中 还有一个 Windows 服务 可以使用 W
  • rabbitmq 的 REST API

    有没有办法从 ajax 向 RabbitMQ 发送数据 我的应用程序由数千个 Web 客户端 用 js 编写 和 WCF REST 服务组成 现在我试图弄清楚如何为我的应用程序创建可扩展点 这个想法是有一个rabbitmq实例 它从放置在一
  • 浮点字节序?

    我正在为实时海上模拟器编写客户端和服务器 并且由于我必须通过套接字发送大量数据 因此我使用二进制数据来最大化可以发送的数据量 我已经了解整数字节顺序以及如何使用htonl and ntohl为了规避字节顺序问题 但我的应用程序与几乎所有模拟
  • Autoconf 问题:“错误:C 编译器无法创建可执行文件”

    我正在尝试使用 GNU 自动工具构建一个用 C 编写的程序 但显然我设置错误 因为当configure运行 它吐出 configure error C compiler cannot create executables 如果我看进去con
  • 有没有办法直接在函数参数中格式化字符串而不是使用临时字符串?

    我有一个接受字符串 字符数组 作为参数的函数 void enterString char my string 当使用这个函数时 我经常发现自己想要输入格式化的字符串 我使用 sprintf 来做到这一点 然而 我每次都必须创建一个临时字符串
  • printf或iostream如何指定点后的最大位数

    字符串采用什么格式printf or iomanip我应该使用 iostream 中的运算符以以下格式打印浮点数 125 0 gt 125 125 1 gt 125 1 125 12312 gt 125 12 1 12345 gt 1 12
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可
  • SQL Server“未找到网络路径”在不同环境中随机且不频繁地发生

    类似 如果不是同一个问题 随机遇到网络路径未找到异常 https stackoverflow com questions 38696448 network path not found exception encountered rando

随机推荐

  • 数据建模草稿/报价/订单/发票

    我目前正在开发一个小项目 我需要对以下场景进行建模 Scenario 客户打电话来 他想要一辆新车的报价 销售代表 登记客户信息 销售代表 在系统中创建报价 并将一个项目添加到报价中 汽车 销售代表 通过电子邮件将报价发送给客户 客户接受报
  • GWT 应用程序仅在 IE 中抛出“JavaScriptException”,堆栈跟踪没有有用的信息

    我的 GWT 应用程序在某个时刻抛出 JavaScriptException 此问题仅出现在 Internet Explorer 中 IE 8 和运行 IE7 模式的 IE 8 堆栈跟踪如下 com google gwt core clie
  • App Center iOS 安装错误:“无法安装此应用程序,因为无法验证其完整性”

    我发现这个问题已被问过很多次 但我没有看到适合我的解决方案 因此我希望提供更多信息可能会有所启发 We use 应用中心 ms https appcenter ms 测试 iOS 应用程序 在我们的 iOS 证书过期之前 此方法运行良好 我
  • 从设备查看或检索 Core Data .sqlite 文件

    我怎样才能真正在真实设备 而不是模拟器 上查看核心数据存储的 sqlite 文件 是否有工具可以让您查看核心数据信息 在 Xcode 中 打开设备窗口 shift cmd 2 从左侧列表中选择您的设备 从 已安装的应用程序 列表中选择您的应
  • 如何自动补全特定目录下的文件?

    我创建了一个命令memo如下 memo vi HOME memo 1 我想将 bash completion 应用于我的memo打开已经存在的文件 HOME memo目录 memo TAB to show files in HOME mem
  • 凸多面体的质心

    我有一个封闭的凸多面体 它由凸多边形 面 数组定义 而凸多边形 面 由 3D 空间中的顶点数组定义 我试图找到多面体的质心 假设密度均匀 目前我用这个伪代码中的算法计算它 public Vector3 getCentroid Vector3
  • VirtualBox 上的 Mac 操作系统无法识别 Iphone

    我一直在尝试将 iPhone 连接到 Mac OS High Sierra 我已经安装在 VirtualBox 上来测试我正在尝试开发的 swift 应用程序 但是 即使我将手机连接到 USB 我也无法从设备中选择手机 设备部分中的消息显示
  • JavaFx setOnCloseRequest & 文件检查等待

    我有两个窗户 如果属性文件不存在 则启动第一个 第二个是 我希望它 在文件已经存在或用户单击创建文件的按钮时打开 这是代码 try if f exists input new FileInputStream config propertie
  • Ruby on Rails 自定义迁移生成器

    我正在创建一个与 Active Record 紧密集成的 Rails gem gem 需要定义许多字段 例如 class User lt ActiveRecord Base requires avatar identifier avatar
  • xcode 7 类型参数不能应用于非参数化类

    我今天在我的 xcode 项目中遇到这个错误 我以前从未遇到过 自上次成功构建以来我所做的唯一更改是导入了 iAD 框架 今天早上我在尝试进行新构建之前执行了此操作 所以我不确定它是否与此有关 我不过我对此表示怀疑 所有问题都与 NSSet
  • 如何避免级联错误消息

    我正在尝试设计一个应用程序错误处理程序来解决任何未处理的异常 但在某些情况下我似乎无法解决不良行为 Application DispatcherUnhandledException每当 UI 外部的线程遇到问题时就会被调用 这将依次调用Ap
  • Android Lollipop 工具栏与自定义视图

    我刚刚读到 Android Lollipop 中的新工具栏 它继承自ViewGroup 为什么使用新工具栏比 LinearLayout 有优势 发表一下自己的看法 解释 你应该开始使用ToolBar而不是ActionBar 这直接取自 An
  • PHP-解析txt文件

    我有一个 txt 文件 其中包含以下详细信息 ID NAME DESCRIPTION IMAGES 123 test Some text goes here image 1 jpg image 2 jpg 133 hello some ot
  • 在 jQuery 中动态添加点击处理程序

    我有一个 MVC 应用程序 其中顶部菜单是动态构建的 如下所示 each data function index dataMenu if i 0 stringBuilder push li class home a href dataMen
  • PHP 在肥皂调用中重复元素

    我尝试从 PHP 进行肥皂调用时遇到问题 首先是一些背景信息 呼叫将转到一个在大型 CRM 系统上进行人员搜索的系统 它需要姓名 城市 出生日期等信息 成功时 应返回一个或多个 id 肥皂接口是系统的标准部分 因此我无法影响调用的布局 我首
  • Axon 框架:删除聚合根

    老实说 我不知道从哪里开始 存储库方面相对简单 但我似乎找不到任何有关如何通过 CommandGateway 删除聚合根的信息 任何有关如何实现这一目标的指示和 或文档将不胜感激 将其放在这里 以供其他可能像我最初一样迷失的人将来参考 使用
  • 如何通过对象内对象的改造来解析json数据?

    我在网上看到了很多用于改造的 JSON 示例 但无法找到我拥有的 json 结构类型 我无法解决它 我有以下 json 数据 我试图用 java 在我的 android 应用程序中显示它们 main data Date 2020 06 15
  • FFmpeg - 请求的输出格式“mpeg”不是合适的输出格式

    我正在尝试使用 FFmpeg 将视频从 mp4 格式转换为 mpeg 以便我可以合并多个视频 我有一个 FFmpeg 的自定义构建 我可以在其中控制配置选项 ffmpeg y i VID 20150514 171122 12085 mp4
  • Apache重写日志

    我收到 网页有重定向循环 错误 这很可能是由于我的 Apache 重写配置造成的 我以前遇到过这些问题 并且发现它们很难调试 是否有某种日志可以让我查看请求被重定向到的内容 如果没有 如何有效地调试 Apache 重写 如果您使用的是较新的
  • 如何为具有类型参数约束的泛型类型编写扩展方法?

    我正在使用特定于任务的 NET 平台 该平台是预编译的 而不是开源的 对于某些任务 我需要扩展此类 但不是通过继承它 我只是想添加一个方法 首先 我想向您展示一个虚拟代码现有类 public class Matrix