2015-03-25 36 views
0

這是我的課:構造的名單<T> C#中的子類

public class CustomList: List<SomeType>{ 

SomeType myList; 

public CustomList(List<SomeType> list){ 
    myList = list; 
} 

//some methods 
} 

,我初始化它是這樣的:

CustomList myCustomList = new CustomList(someList); 

然而在訪問列表(myCustomList[0])的第一個成員,我得到: AurgumentOutOfRangeException錯誤。

我在自定義列表構造函數和/或初始化中做了什麼錯誤嗎?

感謝您的幫助。

編輯:

SOMETYPE是一類由一些公共變量:

public class SomeType{ 
public string title; 
public string campaign; 
} 
+2

我沒有看到你在哪裏添加到'List <>'。如果myList是公共的,你可以通過'myCustomList.myList'訪問你的.ctor參數值。 – 2015-03-25 04:10:43

回答

4

我假設你想要的.ctor參數添加到列表中。所以它添加...

public class CustomList: List<SomeType>{ 

public CustomList(List<SomeType> list){ 
    this.AddRange(list); 
} 

//some methods 
} 

正如阿列克謝在評論中指出調用使用此語法在C#中的基類.ctor的替代方法:

public class CustomList : List<SomeType> { 
    public CustomList(List<SomeType> list) : base(list) { ... } 
} 
+0

你說得對,但'list'不是一個List - 正如我的代碼註釋所指出的那樣。 – 2015-03-25 04:23:43

+2

@Kourosh所以現在你需要'this.AddRange(list)':) – 2015-03-25 04:26:35

+0

'base(list)'會更好......但是'AddRange'也可以。 – 2015-03-25 04:29:36