Установщик свойства get в C # - PullRequest
       11

Установщик свойства get в C #

0 голосов
/ 24 сентября 2011

У меня есть проект библиотеки классов.У меня есть собственность, как показано ниже.Это свойство не только для чтения.

 private   Int32 ABC  ;
public Int32   ABCD
        {
            set
            {
                this.ABC = value;
            }
            get
            {
                return this.ABC;
            }
        }

. Мой вопрос: нужно ли объявлять приватную переменную для того же самого и метода получения / установки?значит это может быть как ниже?

public Int32 ABCD {}

Ответы [ 6 ]

5 голосов
/ 24 сентября 2011

Автоматическое свойство Для объявлений требуются операторы get; set; в фигурных скобках (это то, что вы имели в исходном вопросе):

public Int32 ABCD { get; set; }

Пустой блок свойств недействителен.

3 голосов
/ 24 сентября 2011

Используйте автоматически реализованные свойства, представленные в C # 3.0 (VS 2008) или более поздней версии.
http://msdn.microsoft.com/en-us/library/bb384054.aspx

public Int32 Abcd {get;set;}

Компилятор создает поле поддержки для вас.Однако это анонимно и не может быть доступно.Если позже вы обнаружите необходимость доступа к полю поддержки, вы можете явно объявить его и переопределить метод получения и установки, используя это поле, не нарушая интерфейс.

2 голосов
/ 24 сентября 2011

Использовать автоматически реализованное свойство, оно получено с 2008 года:

    public Int   ABCD
    {
        set;
        get;
    }

Но разница - это значение по умолчанию, т. Е. В свойстве с полем поддержки вы можете установить значение по умолчанию в переменной, но в этом случае значение по умолчанию - .netпо умолчанию.(на самом деле вы должны инициировать его в конструкторе для значения по умолчанию).

1 голос
/ 24 сентября 2011

вы можете сделать так

public string ABCD { get;set;}

1 голос
/ 24 сентября 2011

Необходимо ли объявлять приватную переменную для того же самого и для метода получения / установки?

Если вы имеете в виду , необходимо ли использовать приватная переменная тогда да, это так (если вы не используете автоматический метод, упомянутый BoltClock). Вы должны иметь в виду, что это полный блок кода, так что вы можете делать там практически все, что вам нравится - хотя вы должныделайте это в разумных пределах, так как вы не хотите, чтобы что-либо слишком сильно замедляло доступ к свойствам.

Например, могут быть побочные эффекты при изменении свойства, т. е. другое свойство может иметьбыть обновленным, или вам, возможно, придется уведомить, что другие свойства также изменились.

Если вы не уведомляете или делаете что-то еще, тогда автоматический метод получения / установки быстрее разрабатывается (это неутверждая, что это самый быстрый (или самый медленный) для выполнения, хотя).

1 голос
/ 24 сентября 2011

Если вы сделаете второй выбор, C # создаст первый для вас.

...