說我得到了這個接口:接口多態性在C#2.0
public interface IFoo
{
string Text {get;}
}
這個類實現它:
public class Bar : IFoo
{
public string Text
{
get {return "Hello World!";}
}
}
我有一個函數,作爲參數List<IFoo>
。當我嘗試將它傳遞一個List<Bar>
,我得到這個編譯器錯誤:
Argument 1: cannot convert from System.Collections.Generic.List<Bar>
to System.Collections.Generic.List<IFoo>
這是爲什麼?看起來這應該是出於同樣的原因,就好像我傳遞了一個直接從Bar
繼承的類的列表。
嘗試使用泛型。然後你的函數可以把List作爲參數。檢查出http://msdn.microsoft.com/en-us/library/ms379564(v=vs.80).aspx向下滾動到通用方法的一半 –
Gage
雖然我需要傳遞來實現此接口的對象。如果我使用的是更新版本的.NET,我會很樂意使用泛型,並使用'Func'參數從我傳遞的對象中獲取所需的信息。 –
根據文章我鏈接的泛型應該工作.net 2.0 – Gage