![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Almanaxxx |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 26.4.2006 Репутация: нет Всего: нет |
Всем привет! изучаю язык С# где-то неделю, и мб для гуру NET вопрос покажется некорректным. Но. не могу понять почему для параметров функций нет модификатора "const", т.е. на манер С++:
void foo( const TYPE *param ) и сразу становится понятно что значение на которое ссылается указатель будет неприкосновенен. |
|||
|
||||
| -ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
"Ведь он же памятник, кто же его посадит ?!"
наверно нет большого смысла вообще передавать что-то в параметр, если оно const. -------------------- "Тонкая, однако, работа." |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
-ser-, ты, видимо, вопроса не уловил.
В С++ передача указателя с модификатором const, означает, что никакие измения переданного объекта внутри метода не допустимы. А вот в С# такого нет. Насколько я понимаю там вообще нет никакой возможности запретить изменения объекта. -------------------- Да. Именно так. |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 25 Всего: 173 |
Дрон, не ну почему же: можно написать immutable прокси-интерфейс к объекту
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
immutable прокси-интерфейс
Что этот ужас означает? -------------------- 3 ГОДА НА |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 25 Всего: 173 |
VisualProgrammerNET, ничего страшного, просто класс, экземпляры которого нам хочется передавать как константы, должен реализовывать интерфейс, не содержащий методов, способных изменять состояние объекта. Такой вот const своими руками.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |