Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510

Способы применения автоматически реализуемых свойств

02.07.2014, 12:10. Показов 1424. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Изучаю свойства в C#. Возник вопрос по поводу автоматически реализуемых свойтсв. Единственное преимущество, которое упомянуто в книге (об остальных сказано так: "Несмотря на очевидные удобства...", которые для меня не так очевидны) - возможность указать один из акцессоров как private, чтобы сделать поле только для чтения, или только для записи.
В силу чего возник вопрос: это единственное преимущество автоматически реализуемых свойств, или я что-то пропустил?

Заранее благодарен,
proggamer12.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.07.2014, 12:10
Ответы с готовыми решениями:

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

В задании необходимо реализовать класс согласно указанному варианту. Предусмотреть необходимый набор методов, свойств и индексаторов в реализуемых кла
В задании необходимо реализовать класс Матрица целых чисел. Предусмотреть необходимый набор методов, свойств и индексаторов в реализуемых...

Фоторезистивная краска и способы её применения
Суток добрых читающим. Хотел спросить людей которые сталкивались с фоторезистивной краской KSM-UV201 UV. Каковы пропорции смешивания,...

11
 Аватар для Midian
606 / 388 / 198
Регистрация: 31.03.2013
Сообщений: 2,690
02.07.2014, 12:12
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

https://www.cyberforum.ru/post3262426.html
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,098
02.07.2014, 12:16
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

главное удобство - меньше надо писать
C#
1
2
3
4
public string MyText
{
get; set;
}
C#
1
2
3
4
5
6
private string myText="";
public string MyText
{
get {return myText;}
set {myText = value;}
}
только и всего, просто в 1 случае внутренняя переменная будет задана компилятором неявно. А вот
Цитата Сообщение от proggamer12 Посмотреть сообщение
возможность указать один из акцессоров как private
есть в обоих вариантах
1
 Аватар для Midian
606 / 388 / 198
Регистрация: 31.03.2013
Сообщений: 2,690
02.07.2014, 12:20
nedel, Как говорил мой преподаватель, лучше использовать get; set; потом в любой момент могут понадобится свойства и их легко развернуть, когда уже есть автоматические свойства.
2
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
02.07.2014, 12:53  [ТС]
nedel, спасибо за помощь! Просто в книге, которую я читаю (C# 4.0 Полное руководство - Шилдт. Г) написано: "тип имя { get; set; }... после обозначений аксессоров get и set сразу же следует точка с запятой, а тело у них отсутствует".
Если можно прописывать тело аксессоров, то преимущества автоматически реализуемых свойств становятся понятны.
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,098
02.07.2014, 13:11
Цитата Сообщение от Midian Посмотреть сообщение
Как говорил мой преподаватель, лучше использовать get; set; потом в любой момент могут понадобится свойства и их легко развернуть
Это к вопросу "поля или свойства", а тут вопрос "какие свойства"
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
02.07.2014, 13:34
Цитата Сообщение от proggamer12 Посмотреть сообщение
тело у них отсутствует
У автоматически реализуемых свойств тело действительно отсутствует. Компилятор подставляет следующий код (для свойства int Dummy)
C#
1
2
3
4
5
6
7
8
int _dummy;
public void set_Dummy(int value) {
    _dummy = value;
}
 
public int get_Dummy() {
    return _dummy;
}
Конструкция, например
C#
1
2
3
4
5
6
7
8
9
10
11
private double _x;
public double XPositiveCoord {
    set {
        if (value < 0)
            throw new ArgumentException();
        _x = value;
    }
    get {
        return _x;
    }
}
тоже является свойством, но её вы сами реализовали, а не компилятор за вас.
0
 Аватар для Midian
606 / 388 / 198
Регистрация: 31.03.2013
Сообщений: 2,690
03.07.2014, 00:49
nedel, Все зависит от ситуации, повторюсь - если нужно просто реализовать поля, можно использовать быстрый способ, либо реализовать способ, раскрытия свойств и указать условие применения, либо возврата переменной.

Добавлено через 4 минуты
Цитата Сообщение от nedel Посмотреть сообщение
а тут вопрос "какие свойства"
ну я вроде бы читал тему, там было написано вот что:
Способы применения автоматически реализуемых свойств
0
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
03.07.2014, 09:13  [ТС]
Не разгядел, что в примере nedel было свойство MyName и поле myName, думал поле было создано автоматически. Тогда получается, что единственное преимущество свойств - возможность указать свойство только для чтения, или только для записи?
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,098
03.07.2014, 11:40
Цитата Сообщение от proggamer12 Посмотреть сообщение
единственное преимущество свойств - возможность указать свойство только для чтения, или только для записи?
Свойства еще дают возможность исполнять какие-то операции во время чтения/записи, на пример: проверять корректность данных во время присваивания, генерировать данные во время чтения и т.д. Конечно эти возможности недоступны для автоматически реализуемых свойств.
Кроме того свойства широко используются для операций с Reflection, на пример: сериализация, DataBinding и т.д.
0
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
03.07.2014, 16:13  [ТС]
То есть автоматически реализуемые свойства нужно только лишь для того, чтобы они были свойствами (т. к. по функционалу они совпадают с переменными)?
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,098
03.07.2014, 16:18
Именно. Ну опять же возможность сделать их для внешнего мира только для чтения/записи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.07.2014, 16:18
Помогаю со студенческими работами здесь

Фоточтение: способы освоения и применения
Всем привет) Банально посмотрел на кануне фильм Доктор Стрендж и невольно задумался о фоточтении, где главная идеология состоит в том,...

ASCII коды применяемые на VВ6.0, и способы применения
все ASCII коды применяемые на BV6.0, и способы применения (с примерами)

Способы сохранения значений свойств
Всем привет! В определенном классе есть набор различных свойств Например: private string _protocolNumber; ...

Назовите способы изменения свойств объекта. Дайте характеристику
назовите способы изменения свойств объекта.. Дайте характеристику З,Ы. Заранее благодарю нужно срочна люди добрые

При изменении свойств одного контролла изменять свойства другого автоматически
Подскажите, как связать значения двух контроллов правильнее всего? Например, есть Label1 и Label2. Хочу чтобы они имели один и тот же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru