强制在 C# 中实现通用接口

2023-11-27

无论如何,是否有强制通用定义的约束来实现“通用接口”...也就是说,我希望该类支持传递接口和约束它的通用类,以便该类实现该接口。例如,如果我说:

MyGenericClass<IMyInterface, MyImplementation>.DoSomething();

应该对其进行限制,以便 MyImplementation 实现 IMyInterface

据我所知,可以通过以下方式实现

public class Dynamic_Loader<T, S> where S: T

现在,有没有办法强制 T 成为一个接口?

Edit:这样做的目的是要有这样的东西:

private static List<T> interfaceList = new List<T>();

public static List<T> InterfaceList {get { return interfaceList;}}

public static void Add(S input) { interfaceList.Add(input);}

并将列表仅限于接口(因为它应该返回某些接口的实现)


你的意思是不是也可以加一个约束T like where T : interface?

如果是这样,那么no: 这个清单几乎涵盖了您的选择。

我相信,你所拥有的已经是最接近的了。

出于好奇,您想要限制的原因是什么?T成为一个接口?

或者你的意思是也可以施加约束吗T for T to 实施 some specific界面?

如果是这样,那么yes: 就只有两个where条款(例如,where S : T where T : U).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强制在 C# 中实现通用接口 的相关文章

随机推荐

  • 用于单元测试的 EmberJS 服务注入 (Ember QUnit)

    Specs 灰烬版本 1 13 8 节点 0 10 33 npm 2 13 4 I have import Alias from services alias moduleFor controller test Controller tes
  • PostgreSQL的括号规则,有总结指南吗?

    在数学和许多编程语言中 我认为标准SQL也 括号改变优先级 首先对要评估的部分进行分组 或增强可读性 对于人眼 等效示例 SELECT array 1 2 gt array 1 SELECT array 1 2 gt array 1 SEL
  • jQuery 文本到链接脚本? [复制]

    这个问题在这里已经有答案了 有谁知道有一个脚本可以选择对 URL 的所有文本引用并自动将其替换为指向这些位置的锚标记 For example http www google com would automatically turn into
  • 在 Safari iOS 13 + 上禁用双击缩放

    如何在 Safari iOS 13 移动设备上禁用 双击缩放 有时会缩放 有时则不会 我觉得它可能只适用于特定的 HTML 元素 我读到 双击缩放 应该在 iOS 13 上默认禁用 只有捏合缩放才可以工作 但事实并非如此 您可以添加以下元标
  • ReactJS onClick setState 到不同的元素

    我是新来反应的 我遇到了一个小问题 也许有人可以帮助我 所以问题是我无法使用 onCLick 函数触发我想要的元素 现在我试图删除导航 import React from react import ReactDOM from react d
  • jQuery / ajax 上传图像并保存到文件夹

    更新下面的代码 我发现一些代码能够上传图像并显示其缩略图 但是 我也想将图像保存到特定文件夹中 我可以使用什么 jQuery 代码或 ajax 代码将原始图像保存到我选择的文件夹中 这是现场演示 http jsfiddle net dn9S
  • 展平浅嵌套列表的习惯用法:它是如何工作的?

    我在我正在开发的模块中找到了这段代码 l opaque function thingys x for y in l for x in y 我读不懂这个 通过实验 我能够确定它正在展平 2 级嵌套列表 但语法对我来说仍然不透明 它显然省略了一
  • Django REST Framework ValidationError 始终返回 400

    我正在努力强迫ValidationError返回与 400 不同的状态代码 这就是我所做的 class MyValidationError ValidationError status code HTTP 403 FORBIDDEN 然后在
  • 如何重载间接运算符? (C++)

    我正在尝试创建一个迭代器类作为列表类的成员类 并尝试重载间接运算符 以访问它指向的列表 template
  • 如何获取winform的GUI线程?

    我有一个带有多个 GUI 线程的 winforms 应用程序 我希望他们能够访问彼此的线程对象 而不必单独跟踪该信息 NET 中是否有一个函数可以提供 winforms 控件或窗口对象 并返回线程 或者我可以为 threadID pinvo
  • 如何在AS3中播放库中的声音?

    在Flash 10 AS3中 我添加了一些声音 它似乎工作正常 但我认为我做错了 我将声音导入到库中 但我相信它会从包含 swf sound 的文件夹中重新加载它 我像这样加载它们 var request1 URLRequest new U
  • 检测来电的目标电话号码[重复]

    这个问题在这里已经有答案了 我有一部带有 2 张 SIM 卡的 Android 手机 我想检测来电的目标 是 SIM 1 还是 SIM 2 是否可以从通话信息中获取目标号码 您的问题在文档中没有答案 但我发现了一些可以帮助你的链接 检查双卡
  • 导入错误:没有名为 django 的模块

    我在 mac 的 2 5 2 版本旁边安装了 python 2 6 我一这样做 python2 6 manage py runserver就失败了 因为它找不到django core management 从 shell 中 import
  • 解耦 Microsoft.AspNet.Identity.*

    我正在 Visual Studio 2013 RC 中工作 并使用新的测试表单身份验证Microsoft AspNet Identity 包 我想集成这些概念 用户 角色等 但想使用我自己的域模型 POCO 它们位于不同的程序集中 我也不想
  • 将项目添加到 ListView 时触发事件?

    我有这个 XAML
  • MySQL 触发器可以模拟 CHECK 约束吗? [复制]

    这个问题在这里已经有答案了 我想在MySQL中使用CHECK约束 但不支持 与其他 RDBMS 不同 它会理解但不会强制检查 我见过一些带有触发器的解决方法 但他们倾向于为相关字段设置默认值 而不是返回错误 是否可以构造一个触发器 在不满足
  • 尽管通过 FBSDKLoginButton 登录,ios Facebook SDK v4.x 访问令牌仍为空

    尽管按钮显示我已登录 但我的 Facebook 访问令牌为空 有人知道为什么会这样吗 来自 RootViewController m void viewDidLoad super viewDidLoad self gt login butt
  • 浏览器显示比原始尺寸更大的图像

    我的网站显示的图像大于其原始尺寸 这些图像比用 Photoshop 创建的原始图像大 20 例如 如果图像的宽度为 200 像素 则浏览器显示为 240 像素 所以我所有的图像都变得模糊了 你知道为什么吗 我找到了解决方案 Windows
  • sql搜索查询多个可选参数

    我正在尝试为我的文档归档系统上的高级搜索页面编写查询 我正在尝试通过多个可选参数进行搜索 我有大约 5 个参数 它们可以是空字符串或搜索字符串 我知道我不必将每个检查为字符串或空 并为每个组合创建单独的存储过程 编辑 最终使用 ISNULL
  • 强制在 C# 中实现通用接口

    无论如何 是否有强制通用定义的约束来实现 通用接口 也就是说 我希望该类支持传递接口和约束它的通用类 以便该类实现该接口 例如 如果我说 MyGenericClass