определить получить или установить в C # - PullRequest
1 голос
/ 14 августа 2010

друзья У меня проблема с использованием get или set в классе в c #, когда я использую get или set in, выдает ошибку (недопустимый токен {в классе) pls, см. Код ниже, у меня есть эта проблема

static int abcd
{  
    get           
    {  
       return  _abcd; 
    }  
}  

thanx

это полный код, у меня нет проблемы с любым из ваших кодов, но только это:

namespace ConsoleApplication2
{
   class Program
   {
      class Car
      {
         private int _speed;  
         public int Speed;
         {
              get
              {
                return _speed
              }
          }
       }
   }
}

Ответы [ 3 ]

8 голосов
/ 14 августа 2010

Фрагмент, который вы опубликовали, в порядке, в том числе и в отношении ошибки, поскольку он имеет правильное число от { до } и в правильном порядке.

Посмотрите, где вы его разместили (возможно, за пределами класса), или найдите дополнительные } в файле.

Обновление: (после редактирования в вопросе)

Ваша проблема здесь:

public int Speed; // <-- ; should not be here

И

return _speed // <-- missing the ;

Свойство должно быть реализовано так:

public int Speed
{
   get
   {
      return _speed;
   }
}
7 голосов
/ 14 августа 2010

В вашем коде две ошибки.

  • У вас есть точка с запятой, где ее не должно быть (определено Одедом).
  • Выпропущена точка с запятой там, где должна быть одна.

Попробуйте вместо этого:

namespace ConsoleApplication2
{
    class Program
    {
        class Car
        {
            private int _speed;  
            public int Speed     // <-- no semicolon here.
            {
                get
                {
                    return _speed;  // <-- here
                }
            }
        }
    }
}

Я заметил, что код, который вы первоначально разместили, был отформатирован неправильно.Я бы посоветовал вам автоматически отформатировать документ в Visual Studio, чтобы выстроить фигурные скобки.Это должно сделать ошибку более очевидной.Когда форматирование кода выглядит неправильно, вы знаете, что поблизости есть ошибка.Вы можете найти эту опцию в меню: Правка -> Дополнительно -> Формат документа или использовать сочетание клавиш (для меня Ctrl-E D, но может отличаться для вас, в зависимости от ваших настроек).

Iтакже рекомендовал бы рассмотреть возможность использования автоматически реализуемых свойств вместо полного выписывания метода получения:

namespace ConsoleApplication2
{
    class Program
    {
        class Car
        {
            public int Speed { get; private set; }
        }
    }
}
1 голос
/ 14 августа 2010

Это должно работать:

class Foo
{
    static int _abcd;

    static int Abcd
    {
       get { return _abcd; }
       set { _abcd = value; }    
    }
}
...