我确实在网上搜索了一些关于在创建泛型类时使用where子句的示例。其中大部分都展示了不太真实的用法。
有人能够指出一些不错的例子。
答案 0 :(得分:2)
实际使用情况可能是您希望使用从接口派生的特定类型(例如),而无需自己创建实例。
示例:
class FooReader<T> where T : IFoo, new()
{
public int Read()
{
var foo = new T();
return foo.Read();
}
}
class Foo : IFoo
{
public int Read()
{
return 42;
}
}
interface IFoo
{
int Read();
}
用法:
var reader = new FooReader<Foo>();
var result = reader.Read();