强制在 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# 中实现通用接口 的相关文章

  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri

随机推荐

  • 用于单元测试的 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