Списки внутри классов? - PullRequest
       1

Списки внутри классов?

1 голос
/ 27 февраля 2012

У меня есть список строк с именем Names в классе с именем data.Код для списка выглядит следующим образом:

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

Когда я запускаю программу, код завершается ошибкой в ​​строке с names.Add("C1");

[править] Сообщение об ошибке "" Не удалось найти имена типов или пространств имен (Вам не хватает директивы using или ссылки на сборку?)"

Ответы [ 2 ]

6 голосов
/ 27 февраля 2012

Я собираюсь сделать снимок в темноте и предположить, что ваш класс выглядит следующим образом:

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" };
1 голос
/ 27 февраля 2012

Если ваш класс выглядит так

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" };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...