Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > А где же const?


Автор: Almanaxxx 28.4.2006, 10:11
Всем привет! изучаю язык С# где-то неделю, и мб для гуру NET вопрос покажется некорректным. Но. не могу понять почему для параметров функций нет модификатора "const", т.е. на манер С++:
void foo( const TYPE *param )
и сразу становится понятно что значение на которое ссылается указатель будет неприкосновенен. 

Автор: -ser- 28.4.2006, 12:12
"Ведь он же памятник, кто же его посадит ?!"

наверно нет большого смысла вообще передавать что-то в параметр, если оно const. 

 

Автор: Дрон 29.4.2006, 09:39
-ser-, ты, видимо, вопроса не уловил.
В С++ передача указателя с модификатором const, означает, что никакие измения переданного объекта внутри метода не допустимы.

А вот в С# такого нет. Насколько я понимаю там вообще нет никакой возможности запретить изменения объекта.

 

Автор: Void 29.4.2006, 16:16
Дрон, не ну почему же: можно написать immutable прокси-интерфейс к объекту smile «Чисто-ООП» и страшно неудобно. На RSDN, помниться, пару раз обсуждали… 

Автор: VisualProgrammerNET 30.4.2006, 12:37
immutable прокси-интерфейс

Что этот ужас означает?  smile  

Автор: Void 30.4.2006, 17:20
VisualProgrammerNET, ничего страшного, просто класс, экземпляры которого нам хочется передавать как константы, должен реализовывать интерфейс, не содержащий методов, способных изменять состояние объекта. Такой вот const своими руками. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)