Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> readonly field vs readonly property 
:(
    Опции темы
nmn
Дата 16.3.2009, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



есть данные которые предназначены только для чтения что лучше для этого использовать
Код

class readonlyfieldclass
{
public readonly int someData;
public readonlyclass(int i)
{
someData=i;
}
}

class propertyclass
{
private int _someData;
public propertyclass(int i)
{
_someData=i;
}
public int SomeData
{
get{return _someData;}
}
}

PM Skype   Вверх
mihryak
Дата 16.3.2009, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



а почему константой не сделать?
если что-то мешает (например, тип Guid, результат какого-нибудь Path.Combine и т.п., то есть значение известно или почти известно при компиляции - другими словами, та же константа, только язык не позволяет её так назвать), то можно делать публичным полем
в остальных случаях - свойство, причины ровно те же, по которым рекомендуется и не  readonly поля заворачивать в свойства

можно и по-другому сформулировать - если значение принадлежит экземпляру, а не классу в целом, тогда однозначно заворачивать

Это сообщение отредактировал(а) mihryak - 16.3.2009, 01:43
PM MAIL ICQ   Вверх
Partizan
Дата 16.3.2009, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



nmn, 

отличие в том, что readonly field- раеально readonly для всех...
а вот реализация свойства без сеттера, либо с приватным сеттером делает поле readonly только для пользователей класса. Для самого класса - это поле не станет readonly, т.к. его значение можно поменять, повлияв на значение филда...

а в остальном - дело вкуса...лично я не привык филды в классах выставлять наружу...

Это сообщение отредактировал(а) Partizan - 16.3.2009, 01:41


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
nmn
Дата 16.3.2009, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: 1
Всего: 1



Цитата(Partizan @  16.3.2009,  01:40 Найти цитируемый пост)

отличие в том, что readonly field- раеально readonly для всех...
а вот реализация свойства без сеттера, либо с приватным сеттером делает поле readonly только для пользователей класса. Для самого класса - это поле не станет readonly, т.к. его значение можно поменять, повлияв на значение филда...

как я сразу это не заметил? smile
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.