这种方法有什么问题?

时间:2013-09-03 20:46:27

标签: c# winforms list methods

为什么我在LIST上收到此错误:非静态字段,方法或属性需要对象引用...

       List<string> LIST = new List<string>(); 

       public static void GDT(RichTextBox ResultRTB1)
        {
            foreach (string Items in LIST)
            {
                //do something
            }

        }

3 个答案:

答案 0 :(得分:2)

声明变量LIST时没有static关键字。这种方式被认为是包含类的实例成员。像GDT这样的静态方法不能在不声明类的实例的情况下使用类的实例成员。 您可以解决声明

的问题
static List<string> LIST = new List<string>();

或从GDT方法中删除static关键字,但不知道使用此方法的上下文,并且此变量无法提供建议

答案 1 :(得分:1)

试试这个

 private static List<string> LIST = new List<string>();

您收到错误,因为您无法访问静态方法中的实例成员。您需要一个对象实例来访问它。

或试试这个

public static void GDT(RichTextBox ResultRTB1)
{
    YourType instance = new YourType();
    foreach (string Items in instance.LIST)
    {
        //do something
    }
}

答案 2 :(得分:0)

您正在尝试在静态方法中引用实例成员,或者将列表声明为静态,或者在方法中创建一个类实例,然后从那里访问列表。