-1

我确实在网上搜索了一些关于在创建泛型类时使用 where 子句的示例。其中大多数展示了较少的实际使用情况。

有人能指出一些体面的例子吗?

4

1 回答 1

3

实际用法可能是您想要使用从接口(例如)派生的特定类型,而无需自己创建实例。

例子:

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();
于 2013-01-10T13:56:57.183 回答