1 / 1 / 0
Регистрация: 25.08.2014
Сообщений: 104
|
|
1 | |
.NET 4.x Свойства или Set & Get ?25.01.2015, 14:23. Показов 4422. Ответов 29
Метки нет (Все метки)
Ранее до изучения C# я постоянно использовал методы Set и Get для работы с приватными переменными класса. Как оказалось, в C# имеется альтернативная возможность этому варианту в виде свойств класса. Тока вот я не особо понял их назначение. И есть ли в этом хоть какое-то приемущество. Ведь вызывая свойство вызываются сразу и get и set. А это не оптимально... И, наоборот, если работать без свойств, то всё гораздо прозрачнее и канкретнее. Если нужно задать значение приватной переменной, вызвал Set, а если получить, то get. Т.е. не будет вызов обоих методов (get и set) одновременно, при вызове свойства.
Следовательно, возник вопрос о надобности свойств вообще.. Зачем они?
0
|
25.01.2015, 14:23 | |
Ответы с готовыми решениями:
29
Будет ли корректным вызывать внутри методов get или set другие функции или менять свойства контролов? Свойства get set свойства get;set; Свойства get и set |
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
|
|
25.01.2015, 14:28 | 3 |
Простите, а где вы прочитали о том, что они вызываются одновременно?
Вас обманули, вызывается либо геттер, либо сеттер. Ну или оба, но в некоторых случаях (инкремент, например).
0
|
1 / 1 / 0
Регистрация: 25.08.2014
Сообщений: 104
|
||||||||||||||||
25.01.2015, 14:43 [ТС] | 4 | |||||||||||||||
Так у Троелсена то и узнал. Он меня обманул?
Вот пример из учебника:
0
|
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
|
||||||
25.01.2015, 15:04 | 6 | |||||
Так у него нигде не написано, что они оба сразу вызываются
Вывод неправильный, к сожалению. Если что-то не очевидно из текста книги, то проверьте сами: поставьте точку остановки в отладчике в коде геттера и сеттера, потом попробуйте получить значение свойства. Если при получении тормознет и в геттере и в сеттере, то ваш вывод подтверждается, в противном случае — опровергается. Если не знаете как работать с отладчиком, то просто и там и там пропишите что-то типа:
0
|
1 / 1 / 0
Регистрация: 25.08.2014
Сообщений: 104
|
||||||
25.01.2015, 19:09 [ТС] | 7 | |||||
То что приходилось делать умею. В принципе, поправил метод Main() вот так:
Делаю предположение, что у свойство есть какая-то реализация, чтобы если это свойство вызывается с параметров, который отличается от value в свойстве, то оно меняется, и ессно set срабатывает, а если нет, то срабатывает только get. Получается так?
0
|
458 / 402 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
|
||||||
25.01.2015, 19:23 | 8 | |||||
0
|
25.01.2015, 19:31 | 9 |
hoz, да какие тут еще предположения, что непонятного? Рассматривайте свойство просто как два отдельных метода, совмещенных вместе. Вам и Троелсен об этом в книге говорит, и тут уже какой пост показывают...
0
|
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
|
|
26.01.2015, 11:08 | 10 |
Все намного проще: если свойство стоит в левой части присваивания, то вызывается set, если в правой, то get.
1
|
26.01.2015, 16:03 | 11 | ||||||||||||||||||||
Сообщение было отмечено hoz как решение
Решение
Свойства это методы в удобном виде. Делается исключительно для логического понимания программы. Свойствами обычно обозначают состояние данного объекта. Методы же подразумевают действие. Например у нас есть объект "мяч". Его характеристики: объем(размер), позиция на координатах.
В двух словах: ЭТО УДОБНО.
1
|
NickoTin
|
||||||
27.01.2015, 01:54
#12
|
||||||
0
|
1 / 1 / 0
Регистрация: 25.08.2014
Сообщений: 104
|
|
27.01.2015, 19:13 [ТС] | 13 |
Ev_Hyper, То что всё не понять не будучи разработчиком языка это понятно. Но я ж в дебри то не лезу. Это ж базовые знания вроде как. Тем более у меня поставлена задача изучить базу за пару месяцев. Примерно так. А практиковать то я смогу серьёзнее когда будут знания уже по увереннее. Причина тому то, что писать мне нада dll-ки, и использовать WPF. К изучение WPF планирую приступить через месяца 2-3.
wmclik, Согласен. Книги пишут наверное для себя. Их мало кто понимает сходу. И очевидностей не много для новичков. По ходу Вы ошибаетесь. Вот смотрите: Выходит, что как-то не совсем так вызов происходит. У меня создаётся такое ощущение, что не только я это не допонимаю, но только я это сказал вслух
0
|
27.01.2015, 19:29 | 14 |
Если вы планируете иметь хорошую базу - это вряд ли. За такой срок.
Не говорите чепухи. Все там ясно и понятно. Оно вас обманывает, поверьте. При взгляде на код все становится ясно без глубоких раздумий. Добавлено через 1 минуту Одно немного противоречит другому. dll - как правило логика реализации программы, вне зависимости от интерфейса. WPF - это именно интерфейс. Так что же вы хотите ?)))
0
|
Warrior
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
|
|
27.01.2015, 19:33 | 15 |
За месяц можно выучить базу спокойно, если вам кто то умный подберет нужный индивидуальный материал в зависимости от ваших знаний. Но в вашем случае мне кажется вы не те книги абсолютно читаете
0
|
27.01.2015, 19:41 | 16 |
_exp10der_, если не секрет, что в вашем понимании база?
Мое видение: 1. Основы, т.е. классы, структуры, поля, методы. свойства, модификаторы и так далее, встроенные типы, конструкторы и так далее... 2. Файлы и потоки, сериализация. 3. Базы данных, работа с ними. 4. LINQ во всех проявлениях (LINQ to Object, LONQ to Xml, LINQ to DataSet). 5. Лямбда выражения, анонимные методы и делегаты, методы расширения. 6. Многопоточность и асинхронность, параллельное выполнение. Начиная от потоковых примитивов до работы с PLINQ и Parallel. Примерно так, хотя, возможно, что-то и забыл упомянуть. Вы считаете, на все это хватит месяца?)))
0
|
Warrior
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
|
|
27.01.2015, 19:49 | 17 |
1. Основы, т.е. классы, структуры, поля, методы. свойства, модификаторы и так далее, встроенные типы, конструкторы, события
2. Файлы и потоки, сериализация. 3. Лямбда выражения, анонимные методы и делегаты, методы расширения. 4. LINQ to Object Как то так но это не значит что человек благодаря получим знаниям не сможет зайти на мсдн и сделать допустим Linq to Xml и другие базовые вещи
0
|
1 / 1 / 0
Регистрация: 25.08.2014
Сообщений: 104
|
|
27.01.2015, 19:54 [ТС] | 19 |
Я на него смотрел уже ни раз. И редактировал и добавлял варианты. Как-то отрабатываются Set и Get не так как выше изложено. Очень хотелось бы услышать конкретный ответ дабы прикрыть эту тему и я сдвинулся с места..
0
|
27.01.2015, 19:58 | 20 |
0
|
27.01.2015, 19:58 | |
27.01.2015, 19:58 | |
Помогаю со студенческими работами здесь
20
Автоматические свойства get set Свойства. Недопонимание с акссесорами set и get Свойства get set: каково их назначение Свойства (set,get) трансляция в main Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |