|
Свойство
|
|||
---|---|---|---|
#18+
Скажите пожалуйста, чем свойство отличается от переменной? Заранее благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 11:58 |
|
Свойство
|
|||
---|---|---|---|
#18+
vah, Вот пример свойства: Код: c# 1. 2. 3. 4.
А вот что такое свойство на самом деле: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Компилятор сам создаёт скрытое поле _myField. Свойство по сути -- это два или один из двух методов: Код: c# 1.
и Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 12:06 |
|
Свойство
|
|||
---|---|---|---|
#18+
Вопрос вроде как был не про auto-implemented properties, а про свойства вообще? Свойства позволяют организовать разные уровни доступа к чтению и записи свойства. Например. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 12:10 |
|
Свойство
|
|||
---|---|---|---|
#18+
А вообще эта тема уже не раз обсуждалась. Здесь, например: http://www.sql.ru/forum/1062298/get-set-nadeus-ne-skatimsya-v-holivor-a-to-realno-neponyatno ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 12:11 |
|
Свойство
|
|||
---|---|---|---|
#18+
vah , Это обычный синтаксический сахар, не более. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 12:49 |
|
Свойство
|
|||
---|---|---|---|
#18+
vahСкажите пожалуйста, чем свойство отличается от переменной? Заранее благодарен.Свойство - это один или два метода. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 12:53 |
|
Свойство
|
|||
---|---|---|---|
#18+
vah, Чем отличается понятно - а вот зачем оно нужно и полезно - Гибкость. Можно делать вычисляемые свойства. То есть, не отдельная переменная, а вычисление прямо в методе get В методе set можно делать обратный процесс (при необходимости) - разобрать значение на части, или выполнить попутные действия. Например, в WPF - на свойствах построен байндинг, отображение значений на экране - в каждом свойстве в методе set - вызываетя эвент (стандартный), на который подписана система отображения, и экран получает новое значение сразу после изменения значения. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 13:45 |
|
Свойство
|
|||
---|---|---|---|
#18+
cdtyjv vah , Это обычный синтаксический сахар, не более. Нет. Гораздо более. На уровне рефлексии, свойства отличаются от полей, иначе это были бы просто методы. Так что не надо пороть чушь. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 14:06 |
|
Свойство
|
|||
---|---|---|---|
#18+
hVosttНа уровне рефлексии, свойства отличаются от полей...К огромному сожалению... Странно, что Свеном об этом молчит. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 14:23 |
|
Свойство
|
|||
---|---|---|---|
#18+
Алексей КhVosttНа уровне рефлексии, свойства отличаются от полей...К огромному сожалению... Странно, что Свеном об этом молчит. А в джаве запарка с этим. Свойств-то нету - на каждую переменную пишется пара методов с названием get-set.... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 14:30 |
|
Свойство
|
|||
---|---|---|---|
#18+
D129Алексей Кпропущено... К огромному сожалению... Странно, что Свеном об этом молчит. А в джаве запарка с этим. Свойств-то нету - на каждую переменную пишется пара методов с названием get-set.... :-)Хмм... да действительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 14:36 |
|
Свойство
|
|||
---|---|---|---|
#18+
Алексей КСвойство - это один или два метода.вот эта мысль самая важная, из нее следует: 1) свойство, в отличие от переменной, можно объявить в интерфейсе 2) в дочернем классе можно переопределить только один из этих методов базового класса, то есть можно переопределить геттер, не трогая сеттер и наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 14:57 |
|
Свойство
|
|||
---|---|---|---|
#18+
hVosttcdtyjv vah , Это обычный синтаксический сахар, не более. Нет. Гораздо более. На уровне рефлексии, свойства отличаются от полей, иначе это были бы просто методы. Так что не надо пороть чушь.Ну так это и есть то, что называют «синтаксическим сахаром»: взяли поле, обернули его в два метода, а потом гордо сказали , что это не метод, а свойство. Вы сравните IL вызова свойства и метода - обычный виртуал кол. Хватит позориться уже. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 14:58 |
|
Свойство
|
|||
---|---|---|---|
#18+
cdtyjvНу так это и есть то, что называют «синтаксическим сахаром»: взяли поле, обернули его в два метода, а потом гордо сказали , что это не метод, а свойство. Вы сравните IL вызова свойства и метода - обычный виртуал кол. Хватит позориться уже. Вы не прочитали - это не обязательно должно быть поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 15:12 |
|
Свойство
|
|||
---|---|---|---|
#18+
D129cdtyjvНу так это и есть то, что называют «синтаксическим сахаром»: взяли поле, обернули его в два метода, а потом гордо сказали , что это не метод, а свойство. Вы сравните IL вызова свойства и метода - обычный виртуал кол. Хватит позориться уже. Вы не прочитали - это не обязательно должно быть поле.А это то здесь причем? Если у вас у свойства есть тело, то отличи от метода еще меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 15:29 |
|
Свойство
|
|||
---|---|---|---|
#18+
cdtyjvhVosttпропущено... Нет. Гораздо более. На уровне рефлексии, свойства отличаются от полей, иначе это были бы просто методы. Так что не надо пороть чушь.Ну так это и есть то, что называют «синтаксическим сахаром»: взяли поле, обернули его в два метода, а потом гордо сказали , что это не метод, а свойство. Вы сравните IL вызова свойства и метода - обычный виртуал кол. Хватит позориться уже.Тебе сказали, что в рефлекшене для доступа к полю и свойству используются разные классы, FieldInfo и PropertyInfo соответственно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 15:46 |
|
Свойство
|
|||
---|---|---|---|
#18+
Алексей Кcdtyjvпропущено... Ну так это и есть то, что называют «синтаксическим сахаром»: взяли поле, обернули его в два метода, а потом гордо сказали , что это не метод, а свойство. Вы сравните IL вызова свойства и метода - обычный виртуал кол. Хватит позориться уже.Тебе сказали, что в рефлекшене для доступа к полю и свойству используются разные классы, FieldInfo и PropertyInfo соответственно.И? От этого свойства перестают быть синтаксическм сахаром? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 17:07 |
|
Свойство
|
|||
---|---|---|---|
#18+
cdtyjvА это то здесь причем? Если у вас у свойства есть тело, то отличи от метода еще меньше. Снаружи - это "поле". Инкапсуляция. Нельзя вызвать, только присвоить значение, или использовать в выражении. cdtyjvАлексей Кпропущено... Тебе сказали, что в рефлекшене для доступа к полю и свойству используются разные классы, FieldInfo и PropertyInfo соответственно.И? От этого свойства перестают быть синтаксическм сахаром? Синтаксический сахар - только когда не надо самому создавать приватную переменную, при создании свойств без "тела". Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 17:50 |
|
Свойство
|
|||
---|---|---|---|
#18+
cdtyjvНу так это и есть то, что называют «синтаксическим сахаром»: взяли поле, обернули его в два метода, а потом гордо сказали , что это не метод, а свойство. Вы сравните IL вызова свойства и метода - обычный виртуал кол. Хватит позориться уже. При чём тут вообще поле? Свойства это свойства, методы это методы. Свойство реализуется одним или двумя методами, но от этого оно не перестаёт быть свойством. Поэтому не стоит умничать, без знания предмета. А то получается услышал звон, да не знаю где он. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 18:27 |
|
Свойство
|
|||
---|---|---|---|
#18+
cdtyjvИ? От этого свойства перестают быть синтаксическм сахаром? «синтаксический сахар» это авто-проперти { get; set;}, а сами свойства не являются «синтаксическим сахаром» и никогда им не были. Иди почитай букварь что ли. Зачем так позориться? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 18:30 |
|
Свойство
|
|||
---|---|---|---|
#18+
cdtyjvАлексей Кпропущено... Тебе сказали, что в рефлекшене для доступа к полю и свойству используются разные классы, FieldInfo и PropertyInfo соответственно.И? От этого свойства перестают быть синтаксическм сахаром?Что такое "синтаксический сахар"? Попахивает "контрреволюцией". Понимаешь о чём я? Но тебе сразу сказали о рефлексии, а не о генерации компилятором методов-акцессоров свойств. зы: Java уг ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 18:55 |
|
Свойство
|
|||
---|---|---|---|
#18+
Коллеги , У вас почему словосочетание "синтаксический сахар" такую истерику вызывает? Вы считаете это чем-то плохим? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 20:42 |
|
Свойство
|
|||
---|---|---|---|
#18+
cdtyjv Коллеги , У вас почему словосочетание "синтаксический сахар" такую истерику вызывает? Вы считаете это чем-то плохим? Wikipedia«Синтаксический сахар» — это любой элемент синтаксиса языка программирования, который даёт программисту альтернативный способ записи другой, уже имеющейся в языке синтаксической конструкции, и при этом является более удобным, или более кратким, или похожим на другой распространённый способ записи, или помогает писать программы в хорошем стиле. Свойство не является альтернативной записью другой синтаксической конструкции. Если бы это было так, то при компиляции понятие «свойство» бы полностью терялось, превращаясь в одно/пару методов, а рефлексия давала бы именно методы, но это не так. У класса есть поля, свойства и методы. До компиляции и после. Таким образом есть возможность в рантайме расковырять класс и получить его свойства, а также атрибуты свойства, на этом принципе основывается практически весь имеющийся байндинг в .NET, отслеживание изменений (NotifyPropertyChanges), а также сериализация/десериализация. Вот авто-проперти это да, это «синтаксический сахар». Раньше не было авто-пропертей, потом они появились, при чём для IL никакой разницы нет, так как авто-проперти существуют только до компиляции, именно как «синтаксический сахар». Так каким местом ты сюда понятие «синтаксический сахар» присобачил, я не понимаю? Мозг-то есть вообще? Может стоит сходить на рынок и приобрести хоть плохонький? Это не истерика, а недоумение: либо ты полный профан и ламак, тогда чушь которую ты в последнее время несёшь простительна. Либо одно из двух. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 21:52 |
|
|
start [/forum/topic.php?fid=20&msg=38727596&tid=1402552]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 357ms |
total: | 503ms |
0 / 0 |