2011-11-22 87 views
1

我: - 接口:IMyType - 一些類實現它:MyType1,MyType2,MyType3定義一個特定類型的列表(不是對象)

我如何定義類型IMyType的名單?

var myList = new List<Type> {typeof (MyType1), typeof (MyType2)}; 

上面所列內容並不強制類型是IMyType類型,我可以添加任何類型的列表

回答

2
class Program 
{ 
    static void Main(string[] args) 
    { 
     IList<IMyType> lst = new List<IMyType>(); 
     lst.Add(new MyType1()); 
     lst.Add(new MyType2()); 
     lst.Add(new MyType3()); 

     foreach (var lstItem in lst) 
     { 
      Console.WriteLine(lstItem.GetType()); 
     } 
    } 
} 
public interface IMyType { } 
public class MyType1 : IMyType { } 
public class MyType2 : IMyType { } 
public class MyType3 : IMyType { } 

如果你想確定什麼是實現類,你可以使用obj.GetType()或操作obj是MyType1

+0

感謝的Peter.Actually我想要的類型的列表,而不是一個 – Mehrdad

+0

您必須自定義您的列表,並捕獲異常該類型的對象的列表** *添加*方法和**索引**屬性。因爲您確定C#中的每個類型都繼承了Type base –

4

只需

List<IMyType> list = new List<IMyType>(); 

會做的伎倆,你不需要任何花式東西

相關問題