2013-01-10 117 views
-1

我在网上搜索过,并且在创建泛型类时使用了where子句的一些示例。它们中的大多数都展示了较少的实际用法。泛型类与where子句

有人能够指出一些体面的例子。

+2

的例子在这里大量:http://msdn.microsoft.com/en-us/library/bb384067.aspx – Mir

+0

也许HTTP:/ /msdn.microsoft.com/en-us/library/d5x73970.aspx –

+0

这里是我认为特别不雅之一:'public interface IDevicePlotData where T:IDeviceDataSet where U:IDataPoint' – SWeko

回答

1

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

实施例:

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