public class ListInheritanceTest
{
public void Test1()
{
List<string> list = new List<string>();
MyList myList = list;
}
}
public class MyList : List<string>
{
}
但MyList myList = list
有錯誤「無法隱式轉換類型‘System.Collections.Generic.List’到‘ConsoleTest.MyList’」
我該如何解決這個問題?謝謝。
----編輯----
我不問它爲什麼會給出錯誤。我想知道什麼是使分配工作的解決方法。 上面的代碼只是一個簡單的例子。目的是在我的代碼中將所有List<SomeType>
轉換爲MyList,而不會引入任何後向不兼容。
--- 2nd編輯----
讓我改述一下這個問題。假設我在上面的代碼中以相同的方式定義了MyList。 將List<string>
分配給MyList最簡單的方法是什麼?
我知道
foreach(var item in list)
mylist.Add(item)
總是工作。只是尋找更優雅的東西。
'MyList'延伸'名單',所以MYLIST是'列表'。 '另一方面,列表'不是'MyList',不能被分配給一個。 –
您需要將列表中的項目添加到mylist – Sayse
'MyList myList = new MyList();'如果這不是答案,您想要做什麼? –