2012-02-27 71 views
1

我有一個名爲Names的字符串列表,名爲data。對列表中的代碼如下所示:類內部列表?

public class data { 
    public List<string> Names = new List<string>(); 
    Names.Add("C1"); 
} 

當我運行該程序,代碼失敗與行names.Add("C1");

[編輯]給出的錯誤信息爲「類型或命名空間的名稱可能不會被發現(?是否缺少using指令或程序集引用)

+0

是什麼罵你嗎?此外,顯示一些周圍的代碼,或類,它會幫助我們。 – 2012-02-27 03:16:28

+1

當它對你大叫時,它說什麼? – 2012-02-27 03:16:38

+0

你有什麼特別的錯誤?當我們看不到錯誤信息或足夠的代碼來確定問題時,很難說出問題所在。 – 2012-02-27 03:17:44

回答

6

我會採取瞎猜,你猜你的類看起來是這樣的:

public class data 
{ 
    public List<string> Names = new List<string>(); 
    Names.add("C1"); 
} 

在這種情況下,問題實際上是add方法不是成員或方法聲明,並且不能存在它的位置。一個解決辦法是補充,在構造函數中:

public class data 
{ 
    public List<string> Names = new List<string>(); 

    public data() 
    { 
     Names.Add("C1"); 
    } 
} 

另一種選擇是將其添加到聲明:

public List<string> Names = new List<string>(){ "C1" }; 
+0

對不起,我應該包含整個代碼,我根據您提供的這個實際上是問題的新代碼 – Oztaco 2012-02-27 03:25:49

+0

更新了問題。你不能在類聲明中做Names.Add()。你也錯過了';'在公共靜態字符串ID =「n」'行。 – 2012-02-27 03:27:26

+0

我在聲明中初始化了C1,就像你說的那樣工作了,謝謝 – Oztaco 2012-02-27 03:29:59

1

如果你的類看起來像這樣

public class MyClass 
{ 
    public List<string> Names = new List<string>(); 
    Names.Add("C1"); 
} 

那麼確實是非法的。類級別用於定義成員,不用於調用方法(Add語句)。您需要在方法或構造函數內調用Add方法。

public class MyClass 
{ 
    public List<string> Names = new List<string>(); 

    public MyClass() 
    { 
     Names.Add("C1"); 
    } 
} 

或替代,只是用該值初始化列表:

public List<string> Names = new List<string>() { "C1" }; 
+0

哇,怪異的他們有多類似 – 2012-02-27 03:25:43