Можем ли мы объявить свойство внутри метода в c #? - PullRequest
0 голосов
/ 24 июня 2018

Мы можем объявить переменную внутри метода.Но почему мы не можем объявить свойство внутри метода? `

В следующем примере я могу объявить переменную внутри метода, но не могу объявить свойство.

Я новичок в C #.Поэтому, пожалуйста, поправьте меня, если я ошибаюсь.

class Program
    {
        Public void Learn()
        {
           int f = 5;
          // int a { get; set;};
        }
    }`

1 Ответ

0 голосов
/ 24 июня 2018

Я могу объявить поле внутри статического метода

То, что вы объявили, это не поле, а локальная переменная . Поля не существуют в методах.

Причина этого в том, что поля и свойства представляют состояние объекта. Объект MusicPlayer может иметь такие свойства, как IsPlaying, Volume. Это «состояние» объекта. Состояния принадлежат объекту, а не одному конкретному методу этого объекта, как StartPlaying().

Цель локальных переменных - временно сохранить некоторое значение, чтобы помочь методу выполнить свою работу. Они как кусочки макулатуры. У вас может быть метод с именем SolveQuadratic(double a, double b, double c), и у вас может быть локальная переменная с именем discriminent, в которой хранится b * b - 4 * a * c, так что вам не придется каждый раз переписывать выражение b * b - 4 * a * c.

Вот почему у вас не может быть свойств внутри методов, статических или иных. Им там не место.

...