| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .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 прокси-интерфейс к объекту |
| Автор: VisualProgrammerNET 30.4.2006, 12:37 |
| immutable прокси-интерфейс Что этот ужас означает? |
| Автор: Void 30.4.2006, 17:20 |
| VisualProgrammerNET, ничего страшного, просто класс, экземпляры которого нам хочется передавать как константы, должен реализовывать интерфейс, не содержащий методов, способных изменять состояние объекта. Такой вот const своими руками. |