我想定义一个包含通用元素的通用库:
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/