带有where子句的泛型类

本文关键字:泛型类 子句 where 带有 | 更新日期: 2023-09-27 17:51:16

我确实在网上搜索了一些关于在创建泛型类时使用where子句的例子。

谁能指出一些像样的例子。

带有where子句的泛型类

在实际应用中,您可能希望使用从接口(例如实例)派生的特定类型,而不需要自己创建实例。

的例子:

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();