Страница: 1 |
Страница: 1 |
Вопрос: Я увижу только тебя
Добавлено: 28.02.10 19:09
Автор вопроса: VβÐUηìt | Web-сайт:
Есть ли в C# промежуточная область видимости между Public и Private? То есть, свойство какого-либо класса доступно ему самому, а так же нескольким другим, и больше никому. Вроде бы на эту тему в C++ было словечко friend, а вот про C# я такого не нарыл. Что-нибуть там есть подобное?
Заранее благодарен.
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #1
Добавлено: 28.02.10 20:38
Есть internal, тип будет доступен в пределах одной сборки.
Но учти, в дотнете почти всегда есть возможность обойти это ограничение через Reflection, и создать экземпляр класса, к которому нет прямого доступа. А также вызывать методы и обращаться к свойствам и полям, к которым также нет доступа
Номер ответа: 2
Автор ответа:
Skywalker
ICQ: 300-70-6пятьЪ
Вопросов: 62
Ответов: 545
Web-сайт:
Профиль | | #2
Добавлено: 28.02.10 21:51
protected: Доступ ограничен содержащим классом или типами, которые являются производными от содержащего класса.
Номер ответа: 3
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #3
Добавлено: 28.02.10 23:05
Про эти оба расты я в курсе, мне бы видимость расширить. Неужели они не предусмотрели передачу данных между определенными классами.
Ну как бы мне не жалко Главная цель - убрать лишнюю гадость из видимости, чтобы не сбивать людей с толку. А тут он в ядро классу залез, поменял что-то и все вылетело нахер.
Тобишь через наследование?
Номер ответа: 4
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #4
Добавлено: 28.02.10 23:05
Хотя стоп, один класс не может обратиться к protected-свойству другого класса, даже если они одного рода, или я не прав?
Номер ответа: 5
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #5
Добавлено: 02.03.10 00:37
Почитай про области видимости в .NET, и вообще о наследовании в документации, и многое станет понятным.
Выбор общего наследника только для того, что ограничить область видимости некоторых членов типа - неверное решение, так как наследование предназначено для других целей.
Как наиболее правильно организовать архитектуру того что ты хочешь, можно сказать, если ты подробно опишешь какие методы ты собираешься скрывать и для чего.
Номер ответа: 6
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #6
Добавлено: 02.03.10 08:00
А Фаулер, случайно, не твой творческий псевдоним..?