можно использовать модификатор доступа ключевого слова internal
, чтобы объявить тип или ввести участника как доступного для кодирования в том же блоке только.
можно использовать InternalsVisibleToAttribute
класс, определенный в [1 110] System.Rutime.CompilerServices
, чтобы объявить, что тип как доступный кодирует в том же блоке или указанном блоке только.
Вы используете первое, как Вы используете любой другой модификатор доступа такой как private
. К остроумию:
internal class MyClass {
...
}
Вы используете второе следующим образом:
[assembly:InternalsVisibleTo("MyFriendAssembly", PublicKey="...")]
internal class MyVisibleClass {
...
}
Оба из них можно справедливо считать эквивалентом friend
в C#.
Методы, которые являются protected
, уже доступны производным классам.
Ваш подкласс будет в состоянии получить доступ к защищенным членам класса, который Вы наследовали.
Вы надеющийся предоставлять доступ к этим защищенным участникам к другому классу?
internal
эквивалент C# VB.NET friend
ключевое слово, как Вы предположили (в противоположность замене)
, Использование следующим образом
internal void Function() {}
internal Class Classname() {}
internal int myInt;
internal int MyProperty { get; set; }
, Это, в основном, является модификатор доступа, который предусматривает, что доступность класса / функция / переменная / свойство, отмеченное как внутреннее, - то, как будто это было общедоступно к блоку, это компилируется в, и частное к любым другим блокам
Внутренний эквивалент друга. Защищенный метод только доступен в том же классе или от наследника. При попытке представить защищенные методы от наследника, можно обернуть их в открытые методы.