c# – 泛型函数,其中泛型类型是任何接口
发布时间:2020-12-16 00:13:57 所属栏目:百科 来源:网络整理
导读:我想用通用约束实现泛型函数,传入的Type是一个接口.这可能在C#中吗?我没有约束它工作正常,但如果它不是一个接口,代码将在运行时失败,所以我想让编译时间检查. public T MyFunctionT where T : {any interface type} { return null; } 解决方法 您可以将类型
我想用通用约束实现泛型函数,传入的Type是一个接口.这可能在C#中吗?我没有约束它工作正常,但如果它不是一个接口,代码将在运行时失败,所以我想让编译时间检查.
public T MyFunction<T> where T : {any interface type} { return null; } 解决方法
您可以将类型约束到特定接口,但不能“任何”任意接口.
// This is allowable public T MyFunction<T>() where T : IMyInterface { return null; } 这将允许您传递实现该特定接口的任何对象. 编辑: 鉴于你的目标,从评论中,我个人可能只是进行一些运行时检查: public IEnumerable<T> LoadInterfaceImplementations<T>() { Type type = typeof(T); if (!type.IsInterface) throw new ArgumentException("The type must be an Interface"); // ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |