none
Как работать с добавлением свойств ClassDiagram? RRS feed

  • Вопрос

  • Здравствуйте. Вот недавно таки добрался до визуального конструктора классов, и у меня возник такой вопрос. Создаю класс. жму Добавить -> Свойство и оно добавляет в класс странный код:

            public int Property
            {
                get
                {
                    throw new System.NotImplementedException();
                }
                set
                {
                }
            }
    Вот не могу понять, где в этом свойстве хранить данные, не вводя дополнительной переменной? Можно пример маленького кода, с сохранением и извлечением значения в/из свойства?

    DreamSpark Premium User

    7 сентября 2012 г. 5:30

Ответы

  • "Вот не могу понять, где в этом свойстве хранить данные, не вводя дополнительной переменной?" - нигде, нужно дополнительное поле. Автоматическое свойство использует поле генерируемое компилятором, а в этом случае нужен код:

    private int property; 
    public int Property
    {
      get
      {
       //Тут может быть дополнительная логика.
       return property;
      }
      set
      {
        //Value - передаётся как значение в метод свойства.
        property = value;
      }
    }

    • Помечено в качестве ответа asdfxcbneftyherwe 7 сентября 2012 г. 18:10
    7 сентября 2012 г. 5:58
    Модератор

Все ответы

  • "Вот не могу понять, где в этом свойстве хранить данные, не вводя дополнительной переменной?" - нигде, нужно дополнительное поле. Автоматическое свойство использует поле генерируемое компилятором, а в этом случае нужен код:

    private int property; 
    public int Property
    {
      get
      {
       //Тут может быть дополнительная логика.
       return property;
      }
      set
      {
        //Value - передаётся как значение в метод свойства.
        property = value;
      }
    }

    • Помечено в качестве ответа asdfxcbneftyherwe 7 сентября 2012 г. 18:10
    7 сентября 2012 г. 5:58
    Модератор
  • Если не требуется дополнительная логика проверки при установке/чтении свойства, то лучше и проще воспользоваться автосвойствами:
    public string MyProperty {get;set;}

    Но этот вариант плох тем, что нельзя задать значение по умолчанию, разве что в конструкторе класса.

    Для связи [mail]

    10 сентября 2012 г. 11:23
  • Если не требуется дополнительная логика проверки при установке/чтении свойства, то лучше и проще воспользоваться автосвойствами:
    public string MyProperty {get;set;}

    Но этот вариант плох тем, что нельзя задать значение по умолчанию, разве что в конструкторе класса.

    Для связи [mail]


    В курсе про это, но так как мне иногда лень ставить скобочки - то просто задаю пачку полей с уровнем доступа по-умолчанию, а потом рефакторю эти поля путем инкапсулирования поля. :D

    DreamSpark Premium User

    10 сентября 2012 г. 17:04