2012-02-27 51 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