C# 泛型“where 约束”与“任何泛型类型”定义?

2023-12-09

让我举个例子:

  1. 我有一些通用类/接口定义:

    interface IGenericCar< T > {...}

  2. 我有另一个类/接口,我想与上面的类关联,例如:

    interface IGarrage< TCar > : where TCar: IGenericCar< (**any type here**) > {...}

基本上,我希望我的通用 IGarrage 依赖于IGenericCar,无论是IGenericCar<int> or IGenericCar<System.Color>,因为我对该类型没有任何依赖。


通常有两种方法可以实现此目的。

Option1: 添加另一个参数IGarrage代表着T应该传递到IGenericCar<T>约束:

interface IGarrage<TCar,TOther> where TCar : IGenericCar<TOther> { ... }

Option2:定义一个基本接口IGenericCar<T>这不是通用的并且对该接口有限制

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

C# 泛型“where 约束”与“任何泛型类型”定义? 的相关文章

随机推荐

  • 按时区转换日期

    在上面的代码中 我想将服务器时区 GMT 02 00 的日期转换为我设备中的时区 GMT 03 00 但我总是有相同的服务器日期 我做错了什么 TimeZone timeZoneServer TimeZone getTimeZone tim
  • 在循环中保存 Matplotlib 绘图时出现内存溢出

    我正在使用 Matplotlib 使用迭代循环来绘制 soame 数据 当代码保存了大约 768 个绘图时 它会抛出以下异常 RuntimeError Could not allocate memory for image 我的电脑有大约
  • 对声明的 C++ 静态成员变量的“未定义引用”[重复]

    这个问题在这里已经有答案了 我已经开始使用 Java 进行编程 我刚刚达到了我认为在语言知识方面 良好 的水平 为了好玩 我决定开始使用 C 编程 我对这种语言相当陌生 但我学得很快 而且我认为它与 Java 相差不远 我创建了一个测试类
  • 控制台宽度存储在 Windows 注册表中的哪个位置?

    我的默认控制台宽度是 80 但是当我查看HKCU Console没有一个名称具有此值 唯一与 with 有关的是 WindowSize但它的值为 0x190050 即 dec 1638480 它的最后两位数字是否代表我正在搜索的值 在 HK
  • Python:同名函数和变量

    为什么我无法再次调用该函数 或者说 我怎样才能做到呢 假设我有这个功能 def a x y z if x return y else return z 我这样称呼它 print a 3 gt 2 4 5 I get 4 但想象一下我声明了一
  • 没有点击就触发onclick事件

    这是一个简单的骰子投掷事件 6 个骰子 由随机数生成 一切正常 我正在控制台中获取数据 但我希望它仅在单击按钮时触发 在此代码中 在没有我点击的情况下触发了 onclick 事件 在控制台中 我该如何解决这个问题 h1 Dice Proje
  • 犰狳线性系统求解器(带 openblas)

    我一直在测试各种开源代码来求解 C 中的线性方程组 到目前为止 我发现最快的是犰狳 也使用 OPENblas 包 为了解决密集线性 NxN 系统 其中 N 5000 在我的系统上大约需要 8 3 秒 这真的非常快 没有安装 openblas
  • 辅助功能 - Android Talkback 不会在 HTML 内容上触发焦点事件

    我正在尝试执行 接收onfocus在 Android 设备 Moto G Android 4 4 3 上选择 HTML 页面时使用 Talkback 的 HTML 事件input field 我在单个输入文本上创建了onfocusevent
  • 如何在 Visual Studio Code 中搜索文件?

    我习惯使用 Resharper 我可以在其中搜索文件 不是内容 而是文件名 这使得打开新文件变得更快 此功能是否在 Visual Studio Code 中实现 是否有快捷方式 Using 转到文件 这是在Go菜单或使用键盘快捷键 On W
  • JQuery:隐藏孩子,显示第n个孩子?

    这真的很奇怪而且应该很简单 我在 div 的标签内有一组图像 例如 div a href img src img1 jpg a a href img src img2 jpg a a href img src img3 jpg a div
  • PHP Duck 示例 - 首先 - 设计模式 - 第一章

    这是我向许多其他人提出的第一个问题 这里有人可能会说我疯了 因为我正在使用 PHP OO 关注问题标题中提到的书 在第一章中 作者介绍了一个名为 SimUDuck 的简单项目 尽管我已经用 Java 重现了相同的项目 但我想使用 PHP 重
  • 根据 R 中单行中的多个所需值匹配/查找行

    这肯定是重复的 但我找不到它 所以就这样吧 我有一个包含两列的数据框 一个包含一个组 另一个包含一个标准 一组可以包含许多不同的条件 但每行只能包含一个条件 我想识别包含三个特定条件的组 但会出现在不同的行上 在 我的例子中 我想识别包含条
  • 在 SwiftUI 中控制嵌套 UIView 的惯用方法是什么

    我想在 SwiftUI 视图层次结构中显示 WKWebView 并且我想使用 SwiftUI 中实现的按钮来控制 WKWebView 我可以通过创建 SwiftUI 来做到这一点WebView实现的类UIViewRepresentable和
  • Javascript注入到webview中

    我知道存在很多关于此的问题 但我不明白为什么我的以下代码不再起作用 这是我的代码 private void init webview setWebViewClient new FormWebViewClient webview postUr
  • 异步 I/O Linux

    需要异步 I O 处理 计划在 Linux 上通过 aio 调用使用异步 I O 情况 我已经使用 AF INET 和 SOCK STREAM 标志 TCP 打开了套接字 发送缓冲区有限制高水位线 想要异步写入该套接字 并且当发送缓冲区溢出
  • 获取传递给 C 函数的变量名

    我正在编写一个演示程序来打印变量的地址 为了使代码看起来更清晰 我创建了一个头文件 其中声明了该函数 例如pointer h 和一个用于调用该函数的C文件 例如main c 我想打印 main c 中调用的变量名的变量的地址 main c
  • PHP Curl - Cookie 问题

    我正在尝试通过 cUrl 自动获取我的亚马逊同事统计信息 然而 我在第一道坎就跌倒了 在登录 当我使用以下代码时 url https affiliate program amazon com gp flex sign in select h
  • 如何解决 MATLAB“矩阵尺寸必须一致”错误?

    我正在为一个类输入一些代码 但每次运行该函数时都会遇到相同的错误 Error using gt plus Matrix dimensions must agree Error in gt Test at 6 f32 3 exp x2 2 y
  • 数据注解,为什么boolean prop.IsRequired总是等于true

    我有一个包含布尔值的模型 没有 Required 属性 public bool IsOptedIn get set 我已经覆盖了Object cshtml如下并正在使用 Html EditorForModel 生成我的表格 var prop
  • C# 泛型“where 约束”与“任何泛型类型”定义?

    让我举个例子 我有一些通用类 接口定义 interface IGenericCar lt T gt 我有另一个类 接口 我想与上面的类关联 例如 interface IGarrage lt TCar gt where TCar IGener