c# - 具有通用元素和约束的通用接口(interface)

标签 c# c#-4.0 generics

我想定义一个包含通用元素的通用库:

public interface ILibrary<T>

我的通用元素是这样定义的:

interface ILibElement<T, IVersion<T>>

我想添加一个约束,说明库中的元素必须实现 ILibElement。所以我想我可以像这样更改 ILibrary 的定义:

public interface ILibrary<T> where T : ILibElement<T, IVersion<T>>

但我必须添加类型参数。 所以我想做类似的事情:

public interface ILibrary<ILibElement<T, IVersion<T>>>

但是 T 是未定义的。

我找不到合适的syntax .我该如何表达这样的约束?

最佳答案

我相信您只是想这样做:

where T : ILibElement<T, IVersion<T>>

ILibElement表示为ILibElement<T, IVersion<T>>您只需要使用 T 专门实现该接口(interface)你正在实现的。

关于c# - 具有通用元素和约束的通用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18659096/

相关文章:

c# - C# 中用于从 DllImport 函数中检索引用的指针

.net - 我们是否有 bool 值的 Button down 属性

c# - RDotNet.dll 中发生类型为 'System.StackOverflowException' 的未处理异常

c# - 将 Regex.Matches 连接到一个字符串

c# - 为什么在 WinForms 应用程序中使用 SaveFileDialogue 时出现 RPC 服务器错误?

Java通配符泛型在方法中的返回类型

java - 从外部包实例化 protected 类

R 实现组泛型 Ops() 以启用 S3 对象的比较

c# - Mango 快速应用程序切换和大量处理崩溃

c# - 如何在 C# 中停靠 Windows 窗体?