|
автоматические свойства {get; set;}
|
|||
---|---|---|---|
#18+
Добрый день! Читаю Э.Троелсена C# и .NET 4.0 и возник следующий вопрос: на 220 стр. написано что создавать автоматические свойства только для чтения или для записи нельзя. т.е. код: Код: c# 1.
не скомпилируется. Проверил - действительно, выдает ошибку. Однако, на 268 стр. приводится код базового класса System.Exception, где используются эти самые автоматические свойства только для чтения. Хотелось бы понять почему там нельзя, а тут можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2014, 10:47 |
|
автоматические свойства {get; set;}
|
|||
---|---|---|---|
#18+
Там показан контракт класса, а не описание его свойств. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2014, 11:03 |
|
автоматические свойства {get; set;}
|
|||
---|---|---|---|
#18+
Во-первых, данные свойства приходят из интерфейса _Exception, который "поддерживает" неполные автосвойства (в виду отсутствия реализации). _Exception Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Во-вторых, Exception таки реализует свои свойства. Например, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Вывод: ты видишь не реализацию класса, а метаданные . ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2014, 11:04 |
|
автоматические свойства {get; set;}
|
|||
---|---|---|---|
#18+
Сдаётся мне, что во времена написания класса Exception автоствойств не было даже в планах. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2014, 11:24 |
|
автоматические свойства {get; set;}
|
|||
---|---|---|---|
#18+
Алексей КСдаётся мне, что во времена написания класса Exception автоствойств не было даже в планах. :-) Хорошо подмечено :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2014, 11:38 |
|
автоматические свойства {get; set;}
|
|||
---|---|---|---|
#18+
Что значат такие поля в энтити фреймворк: Bankid {get;set;}. Гетеры и сетеры как бы должны идти со словом abstract. Здесь этого нету. Как вообще потом эти гет и сет реализируются, то есть каково их значение. Что если например одно из двух не включить. Будет просто ошибка компилятора ибо это такая конвенция? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 21:30 |
|
автоматические свойства {get; set;}
|
|||
---|---|---|---|
#18+
stutЧто значат такие поля в энтити фреймворк: Bankid {get;set;}. Гетеры и сетеры как бы должны идти со словом abstract. Здесь этого нету. Как вообще потом эти гет и сет реализируются, то есть каково их значение. Что если например одно из двух не включить. Будет просто ошибка компилятора ибо это такая конвенция? По условиям автоматических свойств должны быть включены и get и set, иначе не скомпелируется, однако в нужных случаях можно ограничить доступ к свойству, например: public Bankid {get; privet set;} В итоге свойство как обычная переменная, однако на получение значения она в данном случае паблик, а на присвоение - приватная! Есть одно условие - у свойства не должен быть доступ больше, чем у самой переменной. Если, все таки, так сделать, программа скомпилируется, но доступ свойства ограничится доступом к переменной! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 23:09 |
|
|
start [/forum/topic.php?fid=20&msg=38590007&tid=1403128]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 354ms |
total: | 523ms |
0 / 0 |