我是c#,並且通過修改visual studio中的現有代碼將程序放在一起。我正在尋找一些指導來理解創建列表的兩種方式之間的區別。都編譯:創建新列表的細微差異?
List <int> myList;
//versus
List <int> myList = new List <int>();
我是c#,並且通過修改visual studio中的現有代碼將程序放在一起。我正在尋找一些指導來理解創建列表的兩種方式之間的區別。都編譯:創建新列表的細微差異?
List <int> myList;
//versus
List <int> myList = new List <int>();
這並不微妙。一個創建一個列表,一個不創建。
第一個只是聲明對列表的引用。在使用之前,您必須稍後創建列表。
第二個聲明對列表的引用並創建一個列表,並將引用設置爲同時引用新列表。
第一個List myList;
簡單地聲明瞭可變,但該值是未分配的。第二個實際創建一個新的List對象,其中沒有條目。
在大多數情況下,您應該使用第二個選項。
第一行只是創建一個變量來保存對列表的引用。
第二個初始化一個空列表refrence。
試圖調用上的參考的任何方法/訪問屬性而不初始化它會在一個空指針異常
List <int> myList;
最終是相同的寫入
List <int> myList = null; // aka it is not a list yet
如果'myList'是一個局部變量,則不是這樣。 – 2012-01-27 20:35:39
第一行沒有按創建一個List<int>
對象。它只聲明一個名爲myList
的變量,其類型爲List<int>
。如果你試圖用這個變量做任何事情,編譯器會抱怨,因爲它是未初始化的。
第二行聲明該變量並將其初始化爲一個值:一個新的List<int>
對象。
雖然這是真的,但我猜測@GIStack可以使用更多的幫助:第一條語句**聲明**一個類型爲「List」的變量,而第二條語句聲明**並創建**(或者實例,如果你願意)類型的變量列表'' –
vlad
2012-01-27 20:31:57
如果你使用的第一個,然後在後面的程序某些時候,你可能會使用這行:myList中=新名單();爲了賦予變量一個值。但是你也可以說myList = cityList;其中cityList是另一個類型爲List 的變量,在您的程序的其他地方聲明和初始化。 –
2012-01-27 20:32:29