想象一下,我有一个指定一些集合处理程序的接口:
interface ICollectionHandler<T> where T : new() { ... }
Run Code Online (Sandbox Code Playgroud)
然后我有另一个想要一个集合处理程序的类,它将用于各种类型,所以我想做类似的事情:
class SomeClass<T> where T : ICollectionHandler<> ...
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我得到一个错误,说"缺少类型参数".
那么是否有一种方法可以指定T是泛型类型,可以在运行时指定自己的类型参数,还是我将C#推到其(可能是合理的)边界之外?
你可以尝试类似的东西:
interface ICollectionHandler<T> where T : new() { }
public class MyImplementation<T, U> where T : ICollectionHandler<U> { }
Run Code Online (Sandbox Code Playgroud)
我非常确定需要了解哪种泛型类型存在于您的接口实现中.如果您不关心该子类型:
interface ICollectionHandler { }
public abstract class CollectionHandler<T> : ICollectionHandler where T : new() { }
public class MyImplementation<T> where T : ICollectionHandler { }
Run Code Online (Sandbox Code Playgroud)
但这实际上取决于你将如何使用它以及在什么情况下.也许你可以提供更多细节?
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |