T 为 type1 或 type2 的通用方法

2024-06-26

有没有办法声明一个泛型函数,泛型类型是type1or type2?

example:

public void Foo<T>(T number)
{
}

我可以将 T 限制为 int 或 long


对于 ReferenceType 对象,您可以执行以下操作

public void DoIt<T>(T someParameter) where T : IMyType
{

}

...

public interface IMyType
{
}

public class Type1 : IMyType
{
}

public class Type2 : IMyType
{
}

对于您的情况,使用 long 作为参数无论如何都会限制对 long 和 int 的使用。

public void DoIt(long someParameter)
{

}

要限制任何值类型(例如:int、double、short、decimal),您可以使用:

public void DoIt<T>(T someParameter) where T : struct
{

}

更多信息可以查看官方文档here https://msdn.microsoft.com/en-us/library/d5x73970.aspx

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

T 为 type1 或 type2 的通用方法 的相关文章

  • 运行时两个注册之间的简单注入器基于动态上下文的注入

    我有一个使用 Simple Injector 进行命令处理程序注册的中介应用程序 并且注入和处理程序均已设置并完美运行 class DoWashingCommandHandler IRequestHandler
  • 外部剃刀视图看不到外部模型

    我对外部剃刀视图有疑问 在我的项目中 我有主 mvc Web 程序集和动态加载的外部类库程序集 来自 DB 及其自己的控制器 视图和模型 这些程序集在运行时不会直接引用和加载 我能够通过为控制器创建自定义控制器工厂 为视图创建自定义虚拟路径
  • 错误 C2065:'cout':未声明的标识符

    我正在处理我的编程作业的 驱动程序 部分 但我不断收到这个荒谬的错误 错误 C2065 cout 未声明的标识符 我什至尝试过使用std cout但我收到另一个错误 IntelliSense 命名空间 std 没有成员 cout 当我宣布u
  • 如何将 QSerialPort 模块添加到 CMake 中?

    我想将 QSerialPort 模块添加到 CMake 中 根据我的理解 我需要将QT 串口添加到 pro中 我只想使用 CMake 所以我尝试编译简单的 CMake 文件 但有错误 QtCore 正在工作 qDebug 可以毫无问题地显示
  • 如果 .txt 文件不存在,则创建一个,如果存在则追加新行

    我想创建一个 txt 文件并写入它 如果该文件已经存在 我只想添加更多行 string path E AppServ Example txt if File Exists path File Create path TextWriter t
  • 持续运行的 C# 代码 - 服务还是单独的线程?

    我有一个 NET 4 Web 应用程序 它有 3 个关联的独立项目 DAL BAL 和 UI 我正在使用实体框架进行数据库交互 我有代码循环遍历一堆数据库数据 根据找到的内容调用方法 然后更新数据库 我希望这段代码一直运行 同时 我希望用户
  • 如何在 WCF 中反序列化自定义 SOAP 标头?

    我正在尝试向通过 WCF 的所有 SOAP 请求添加自定义标头 我发现这篇精彩的文章 http blogs msdn com b mohamedg archive 2012 10 21 adding custom soap headers
  • argc 和 argv 在 Windows 中没有用吗?

    在 Linux 中 argc 和 argv 计算终端中的参数 但在 Windows 中 我找不到放置第二个参数的地方 事实上 每次我运行该程序时 它都会创建那个丑陋的黑色窗口 我什至没有机会给出任何争论 那么这两个变量在Windows平台下
  • 为什么 ASP.Net MVC Range 属性采用类型?

    我只是想知道为什么范围验证属性可以采用类型和两个字符串作为参数 这是为了根据枚举或类似的东西验证字符串吗 另外 我想做的是找到一种简单的方法来验证必须出现在枚举中的 3 个字符的字符串 有什么建议吗 谢谢 亚历克斯 我确实发现你提到的 Ra
  • 如何通过 Excel 互操作对象自动调整列大小?

    下面是我用来将数据加载到 Excel 工作表中的代码 但我希望在加载数据后自动调整列的大小 有谁知道自动调整列大小的最佳方法 using Microsoft Office Interop public class ExportReport
  • 防止单个可执行文件的多个进程实例

    我正在使用 NET 和 C 我想阻止同一可执行文件的两个实例同时运行 但我不想阻止从另一个文件夹运行的同一进程 例如 我有一个位于两个不同位置的可执行文件 C MyProject Master Program exe C MyProject
  • 如何从另一个线程阻止 UI 线程或强制表单在 UI 线程内运行

    我的应用程序的一个要求是 如果它失去数据库连接 那么它必须弹出一个大模式 无连接 稍后重试 对话框 阻止所有用户交互 直到重新获得连接为止 我通过在应用程序启动时启动 DeviceMonitor 类的实例来实现此目的 该类创建一个 Syst
  • 没有类型的 IEnumerable 属性

    我正在尝试创建一个类似于来自 MSDN 的官方 DataGrid ItemsSource 的属性 public IEnumerable ItemsSource get set 这提供了对任何派生类中任何类型的支持 有了这个 我可以设置类似的
  • 合并大文件的最佳方法是什么?

    我必须合并数千个大文件 每个大约 200MB 我想知道合并这些文件的最佳方法是什么 行将有条件地复制到合并文件中 可以使用 File AppendAllLines 或使用 Stream CopyTo 吗 使用 File AppendAllL
  • 矩阵行列式算法 C++

    我是编程新手 我一直在寻找一种找到矩阵行列式的方法 我在网上找到了这段代码 但我很难理解这里的算法 我对递归的基础没有问题 但继续和主循环我很难理解 非常感谢任何可以向我解释该算法的人 int determ int a MAX MAX in
  • PC 上 XNA 中的信箱和缩放

    有没有一种方法可以让我基本上以 1080p 或 720p 作为默认分辨率来开发 XNA 游戏 然后根据设置的分辨率将游戏中的所有内容缩放到适当的大小 而不必在每个 Sprite 中设置缩放因子Draw 方法 我的想法是 我可以基于 1080
  • 自动化 WinDBG 或以其他方式从转储文件中提取信息?

    假设我有一个进程的内存转储 我想对其运行报告 所以本质上我想打开 WinDBG 加载 SOS 并运行一个脚本 该脚本运行一些命令 解析输出 然后基于该结果运行更多命令 除了像 SendKeys 这样的黑客行为之外 还有没有办法自动化 脚本化
  • Unity 错误“内部构建系统错误。后端退出,代码为 -1073740791。”摧毁/杀死了我的项目

    好吧 我可能在这里夸大了 但这是真的 当我开始打开它时 该项目由于错误 内部构建系统错误 后端退出 代码为 1073740791 而被破坏 应用程序 这个项目已经在Google Play上发布了 也许和设置有关 有人可以帮忙吗 完整错误 I
  • 有关 Endian 性和 .Net 的详细信息?

    我有几个关于字节顺序的问题 这些问题足够相关 我保证将它们作为一个问题提出 1 字节顺序是由 Net还是由硬件决定的 2 如果是由硬件决定的 我怎样才能在C 中找出硬件的字节序 3 字节序是否影响二进制交互 例如 OR AND OR 或移位
  • Json.net 将数字属性序列化为字符串

    我正在使用 JsonConvert SerializeObject 序列化模型对象 服务器期望所有字段都是字符串 我的模型对象具有数字属性和字符串属性 我无法向模型对象添加属性 有没有办法将所有属性值序列化为字符串 我必须只支持序列化 而不

随机推荐

  • CA随机3色

    是否存在随机元胞自动机规则 如规则 30 且具有 3 种颜色 这实际上是一个研究问题 您必须对发现的元胞自动机 CA 规则进行统计测试 以证明它是随机的 如果您想做这样的研究项目 请查看Wolfram 科学暑期学校 http www wol
  • 在 Laravel 5 中合并 'with' 和 'whereHas'

    我在 Laravel 5 中使用 Eloquent 编写了这段代码 它工作得很好 filterTask function query use id query gt where taskid id User whereHas submiss
  • jasper 报告分页符增加底部空白

    I have a requirement to create a PDF page using jasper report PDF is very huge so I need to divide it into three pages o
  • 仅使用 CSS 更改颜色几秒钟

    是否可以在悬停 X 秒时更改 div 的颜色 然后仅使用 CSS 返回其原始颜色 我不希望颜色之间有任何淡入或淡出 例如 如果我想在悬停时将 div 的颜色更改为黄色 1 秒 则它必须保持黄色 1 秒 然后立即返回到原始颜色 This ht
  • 如何在 Adob​​e AEM 中应用主题?

    Adobe AEM 以前称为 Adob e CQ 中的客户端库 ClientLib 功能可以轻松按类别包含客户端库 并且每个库都可以通过依赖项引入其他库 然而 围绕 主题 的文档有点薄弱 This link http wem help ad
  • 溢出-x 不工作

    我正在尝试为我的画廊实现一个滑块 目前 CSS 存在溢出 x 无法正常工作的问题 我想要一个水平滑块而不是垂直滚动 这是fiddle http jsfiddle net nevinm 6H43f 请务必看一下 testimg height
  • 原则 2 使用 QueryBuilder 进行条件多行更新

    这个问题有一些答案 但实际上 它们似乎都无法帮助完成一项简单的任务 我需要使用 Doctrine2 QueryBuilder 根据一个查询中的条件更新多行 最明显的方法应该是错误的 userAgeList user name a gt 30
  • nginx 重写文件夹重定向

    all 我正在尝试在 nginx 中做一些事情来重定向对文件的所有调用 images 成为 assets images 有人可以帮我重写规则吗 给予 301 永久移动状态 以下是使用较新版本的 Nginx 执行此操作的首选方法 locati
  • 无法生成 Apple Passbook 签名

    我正在编写一个 shell 脚本 以使用 p12 证书从 manifest json 自动生成 Apple Passbook 签名文件 这是我所做的 openssl pkcs12 passin pass mypass in mycert p
  • 禁用的文本区域无法在 IE8 中滚动 - 解决方法吗?

    在 IE8 下 禁用的文本区域不会滚动 例如
  • 在 Python 中使用带有 asyncio 的信号量

    我试图限制使用信号量同时运行的异步函数的数量 但我无法让它工作 我的代码归结为 import asyncio async def send i print f starting i await asyncio sleep 4 print f
  • 了解使用内存源操作数和 x87 fcomi / fcmov 的 GCC 内联汇编代码

    我正在阅读研究论文Privado 实用且安全的 DNN 推理 用于隐藏依赖于输入的分支 https arxiv org pdf 1810 00602 pdf 我试图理解该论文中的以下 GCC 汇编代码 float temp asm vola
  • Vue 和 Axios + AWS API 网关和 Lambda - CORS + POST 不起作用

    我正在尝试通过 AWS API Gateway 创建一个 API 测试函数 以及一个通过 Axios 的 Vue 应用程序调用的 Lambda 函数 它应该从输入元素发送姓名和电子邮件 每次我收到此错误时 Access to XMLHttp
  • Visual Studio 调试器可以显示不加引号/未转义的字符串吗?

    Visual Studio 中的托管调试器 我使用的是 11 0 显示包含双引号和反斜杠的字符串值 如下所示 Text C Temp 有时我想以简单的形式显示像上面这样的转义文本 Text C Temp 我知道可以通过值旁边的放大镜访问文本
  • 尝试打开 Android XML 视图时 Eclipse 中抛出 NullPointerException?

    这是例外情况 java lang NullPointerException at android widget TextView setTextColor TextView java 1787 at android widget TabHo
  • Vuex 2.0 调度与提交

    有人可以解释一下什么时候使用调度和提交吗 我理解提交会触发突变 调度会触发操作 然而 派遣不也是一种行动吗 正如你所说 dispatch触发一个动作 并且commit触发突变 以下是如何使用这些概念 你总是用 dispatch来自路线 组件
  • 如何使用 DSPACK 将自定义音频缓冲区注入 DirectX 过滤器图表?

    我使用 Delphi 6 和 DSPACK 来执行一些涉及音频和 DirectX 的操作 我在 输入 方面找到了将枚举的音频输入设备之一分配给 TFilter 对象并将该过滤器连接到 TSampleGrabber 对象的位置 这为我提供了将
  • Linux / C++ 有关glade3 和gtkmm 的帮助

    下面是一个 C 应用程序源代码 它使用 Glade3 和 GTK2 创建 GUI gcc o simple simple c pkg config cflags libs gtk 2 0 gmodule 2 0 include
  • 尝试在 Android Studio 上运行单元测试时出现 NoClassDefFoundError

    我正在尝试为我的 Android 应用程序创建一些简单的测试 但在运行测试时遇到了问题 当我尝试运行测试时 我不断收到 NoClassDefFound 错误 但我似乎无法弄清楚其原因是什么 如果我能有一双新的眼睛来看待这个问题 我将不胜感激
  • T 为 type1 或 type2 的通用方法

    有没有办法声明一个泛型函数 泛型类型是type1or type2 example public void Foo