2013-01-10 161 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();