Можно ли скрыть параметр метода в .Net - PullRequest
0 голосов
/ 26 февраля 2019

Можно ли скрыть некоторые параметры метода, например необязательные параметры для рекурсивной функции, которую пользователь никогда не должен устанавливать?

Я думаю, что нет, так что, чтобы обойти это, является обычной практикой помещать эти функции в нестатические классы и отслеживать вещи, которые мы хотим скрыть в приватных переменных экземпляра класса?

Просто для полноты хочу скрыть два последних параметра:

    <Extension>
Public Function ToXmlDoc(key As Win32.RegistryKey,
                            Optional exportOptions As ExportOptions = ExportOptions.Recursive,
                            Optional regValueOptions As Win32.RegistryValueOptions = Win32.RegistryValueOptions.DoNotExpandEnvironmentNames,
                            Optional useEmptyValues As Boolean = False,
                            Optional xDoc As Xml.XmlDocument = Nothing,
                            Optional xParentNode As Xml.XmlNode = Nothing) As XmlDocument

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете сделать internal или private версию функции / метода с параметром.Кроме этого, нет, вы можете только сделать Необязательные параметры , которые могут видеть все, у кого есть доступ


Дополнительные ресурсы

Модификаторы доступа (Руководство по программированию в C #)

  • public Доступ к типу или элементу может быть получен из любого другого кода в той же сборке или другой сборке, которая на него ссылается.

  • private Доступ к типу или члену возможен только с помощью кода из того же класса или структуры.

  • protected Тип илидоступ к члену возможен только с помощью кода в том же классе или в классе, производном от этого класса.

  • internal Доступ к типу или члену может быть осуществлен любым кодом втой же сборки, но не из другой сборки.

  • protected internal Доступ к типу или элементу может быть получен из любого кода в сборке, в которой он объявлен, или из производного класса вдругая сборка.

  • private protected Доступ к типу или элементу можно получить натолько в объявленной сборке, кодом в том же классе или типом, производным от этого класса.


Документация VB здесь

Уровни доступа в Visual Basic


Наконец , если вы не хотите ответов C #, пожалуйста, не используйте тег

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...