В пространстве имен у меня есть класс утилиты, который работает только с основным классом, который я просматриваю. Как я могу скрыть это?Класс защиты в пространстве имен
ответ
Сделайте свой классом внутреннего и работать с различными сборками или сделать его приватный вложенный класса основного класса.
public class A
{
private class B { ... }
...
}
Если только будет использоваться внутри - в этом «основной класс» - то это, казалось бы, наиболее гнездиться наши правила его.
Другими словами, ваша структура будет выглядеть следующим образом:
public class MainClass
{
// ...
private class NestedUtilityClass
{
// ...
}
}
Таким образом, он доступен только из в MainClass
. Вы можете изменить измененный вложенный класс на protected
, если вам нужно, чтобы он был доступен в производных классах, конечно.
В дополнение к ансамблям Guillaume и Noldorin - если вы хотите иметь основной класс и класс утилиты в разных файлах - используйте частичный. Отметьте свой основной класс как частичный и разделите его на 2 файла - один содержит основную реализацию класса, другой - класс полезности.
Если вы используете только этот класс в одном классе, вы можете сделать это частный вложенный классом:
public class MyPublicClass
{
private class PrivateClass
{
}
}
В основном в пространстве имен ваших типов могут иметь либо общественные или внутренние подъездные пути. С другой стороны, вложенные типы внутри классов могут иметь частную доступность. До тех пор, пока ваш тип утилиты имеет смысл только для вашего основного класса, рассмотрите вопрос о включении класса утилиты в основной класс с частной доступностью.
Вот выдержка из C# Спецификации:
невложенных типов могут иметь общественную или внутреннюю объявленную доступность и имеет внутреннюю объявленную доступность по умолчанию. Вложенные типы могут иметь эти формы объявленной доступности тоже, плюс один или несколько дополнительных форм объявленной доступности, в зависимости от содержащего типа, является ли класс или структура:
- Вложенного типа, который объявлен в классе может быть любая из пяти форм объявленной доступности (public, protected internal, protected, внутренний или закрытый) и, как и другие члены класса , по умолчанию является приватным объявленной доступности.
- Вложенный типа, который объявлен в структурах могут иметь любой из трех форм объявленной доступности (общественной, внутренних или частное) и, как и других члены структуры, по умолчанию частной объявленной доступности.
- 1. Частный класс в пространстве имен
- 2. гася класс в пространстве имен
- 3. Класс не найден в пространстве имен
- 4. как требуется рубиновый класс в пространстве имен
- 5. Класс XAML не существует в пространстве имен
- 6. Как использовать класс в пространстве имен?
- 7. Свойство «Класс» не существует в пространстве имен
- 8. Win32_PerfFormattedData_Counters_ProcessorInformation класс отсутствует в cimv2 пространстве имен
- 9. Класс недоступен в пространстве имен после сборки
- 10. Производный класс в другом пространстве имен
- 11. C++ Как создать класс, основанный на пространстве имен и пространстве имен, полагающемся на класс?
- 12. PHP: используя класс суб-пространства имен в пространстве имен
- 13. Ошибки в пространстве имен
- 14. Неопределенный класс, если класс находится в другом пространстве имен
- 15. Почему один класс, содержащийся в пространстве имен, не видит другого, содержащегося в том же пространстве имен?
- 16. Неоднозначное в пространстве имен
- 17. Числа в пространстве имен
- 18. основной в пространстве имен
- 19. Определения класса в пространстве имен
- 20. Метод цепочки в пространстве имен
- 21. Неоднозначная ссылка в пространстве имен
- 22. Использование SPLFixedArray в пространстве имен
- 23. Ссылка на класс в другом пространстве имен в другом проекте
- 24. Как экспортировать класс, реализованный в пространстве имен В node.js
- 25. неспособные найти класс в пространстве имен в Laravel 5,2
- 26. Как использовать класс, определенный в отдельном заголовке в пространстве имен
- 27. use Класс исключений в пространстве имен в php
- 28. Определение класса в пространстве имен
- 29. Класс не найден, используя include_once в пространстве имен
- 30. Использовать класс Mediawiki SpecialPage в другом пространстве имен