2013-12-01 3 views
-1
public class C 
{ 
    private List<myClass> _list = new List<myClass>(); 
    public void MyFunction() 
    { 
     myClass myClassInstance = new myClass(); 
     // working with myClassInstance 
     _list.Add(myClassInstance); 
    } 
} 

Проблема в том, что список не заполнит список, _list.Count всегда 0 :(Добавление локальной переменной списка

+6

Что вы опубликовали не действует C# ... –

+0

Прежде всего, 'class' это системное слово, и вы не должны называть переменные, используя это слово –

+0

Вы не можете использовать ключевые слова в качестве переменных. попробуйте '@ class', или' theClass' –

ответ

1

Ну, это зависит от вашего Desing от myClass, но я вижу две вещи ;

  • class является keyword, поэтому вы должны использовать его в качестве @class

Ключевые слова являются предопределенными, зарезервированными идентификаторами, которые имеют специальное значение значений компилятору. Они не могут использоваться в качестве идентификаторов в вашей программе , если они не включают @ в качестве префикса. Например, @if является допустимым идентификатором , но если нет, то, если это ключевое слово.

  • ваш метод function пропустил типвозврата, который void выглядит ОКЕЙ для вашего случая.
+0

Мне не нужны синтаксические ошибки, поэтому моя проблема заключается в том, что список не заполняется по некоторым причинам ... – user3055186

+1

@ user3055186 _I не заботился о синтаксических ошибках. Неужели? Тогда как вы думаете, ваша программа будет работать? –

+0

Нет, я имел в виду, что меня не волновало синтаксис в вопросе размещения, а не в кодекса :) – user3055186

0

Вам нужно переименовать и экземпляр myClass и функцию в нечто иное, чем ключевые слова C#. В этот момент вы можете добавить значение в список

public class C 
{ 
    private List<myClass> _list = new List<myClass>(); 
    public void MyFunction() 
    { 
     myClass myClassInstance = new myClass(); 
     // working with myClassInstance 
     _list.Add(myClassInstance); 
    } 
} 
Смежные вопросы