17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510

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

02.07.2014, 12:10. Показов 1445. Ответов 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
607 / 389 / 198
Регистрация: 31.03.2013
Сообщений: 2,691
02.07.2014, 12:12
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

https://www.cyberforum.ru/post3262426.html
0
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,102
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
607 / 389 / 198
Регистрация: 31.03.2013
Сообщений: 2,691
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
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,102
02.07.2014, 13:11
Цитата Сообщение от Midian Посмотреть сообщение
Как говорил мой преподаватель, лучше использовать get; set; потом в любой момент могут понадобится свойства и их легко развернуть
Это к вопросу "поля или свойства", а тут вопрос "какие свойства"
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 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
607 / 389 / 198
Регистрация: 31.03.2013
Сообщений: 2,691
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
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,102
03.07.2014, 11:40
Цитата Сообщение от proggamer12 Посмотреть сообщение
единственное преимущество свойств - возможность указать свойство только для чтения, или только для записи?
Свойства еще дают возможность исполнять какие-то операции во время чтения/записи, на пример: проверять корректность данных во время присваивания, генерировать данные во время чтения и т.д. Конечно эти возможности недоступны для автоматически реализуемых свойств.
Кроме того свойства широко используются для операций с Reflection, на пример: сериализация, DataBinding и т.д.
0
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
03.07.2014, 16:13  [ТС]
То есть автоматически реализуемые свойства нужно только лишь для того, чтобы они были свойствами (т. к. по функционалу они совпадают с переменными)?
0
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,102
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru