c# - 如何在 C# 3.5 中对泛型方法施加接口(interface)约束?

标签 c# generics interface constraints

我想在 C# 3.5 中实现这样的功能:

public void Register<T>() : where T : interface {}

我可以用类或结构来做,但是如何用接口(interface)来做呢?

最佳答案

如果您询问有关向特定接口(interface)添加约束的问题,那很简单:

public void Register<T>( T data ) where T : ISomeInterface

如果您询问是否存在关键字(如 class 或 struct)来限制 T 的可能类型范围,那是不可用的。

虽然你可以写:

public void Register<T>( T data ) where T : class // (or struct)

你不能写:

public void Register<T>( T data ) where T : interface

关于c# - 如何在 C# 3.5 中对泛型方法施加接口(interface)约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1104229/

相关文章:

javascript - 谷歌地图标记集群 : how to combine Interface Renderer and GridOptions gridSize in configuration object?

c# - 查找接口(interface)实例背后的具体类型

c# - 将 WPF 绑定(bind)错误转换为运行时异常。不适用于已发布的已发布应用程序

保存 ArrayList 时由泛型引起的 Java 编译器警告

Java - 使用泛型创建流畅的界面

c# - 泛型方法的可为空参数类型 <T>?

c# - 由特定通用包含接口(interface)参数化的通用容器接口(interface)

c# - Visual Studio 调试器不会进入未使用的变量声明

c# - LINQ - 删除 List<T> 中以任何顺序或位置包含数组中的一项的项目

c# - 如何在 3D 地形上创建 "scorched area"?