| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Read only свойство |
| Автор: Vit 23.4.2007, 16:15 | ||
У меня есть такой простейший код:
Я могу объявить что MyProperty "из вне" класса было бы только read-only, а менять его можно только внутри класса? Существует ли специальная директива, или надо реализовывать через get/set и третью переменную? |
| Автор: HalkaR 23.4.2007, 16:21 | ||
Зачем третья переменная?
Может есть другие способы? Добавлено @ 16:21 Но я их не знаю |
| Автор: Дрон 23.4.2007, 16:25 | ||
| Любопытно. Но нет, так нельзя. Или как HalkaR сказал, или вот так, для единообразия:
|
| Автор: Vit 23.4.2007, 18:49 |
Ух-ты, какой код! Мне понравилось, спасибо! В твоём примере MyProperty и есть дополнительная переменная, только я ошибся, не третья, а вторая |
| Автор: Любитель 23.4.2007, 22:46 |
| Vit, свойства и поля - это строго говоря разные вещи. Переменная - это поле, а свойство - аксессор к полю (впрочем, не обязательн ок полю). Зы Хотя, конечно, мелочь. |
| Автор: mr.DUDA 24.4.2007, 11:29 |
Да не мелочь, всё правильно. Свойство - это не данные, а код. После компиляции MyProperty превратится в парочку методов с именами get_MyProperty и set_MyProperty. |
| Автор: Vit 24.4.2007, 16:01 | ||
Строго говоря - да, но строго получилось бы если бы язык требовал доступ к любой переменной класса из-вне через поле с определёнными get/set, а так как можно просто объявить переременную с public доступом, то различия слегка стираются... Впрочем я понимаю отличия, просто не всегда могу пользоваться терминами C# - они немного другие, чем те к которым я привык... |