Каков эквивалент 'друга' ключевое слово в C sharp?

21
задан Stewart 12 September 2017 в 18:03
поделиться

4 ответа

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

  2. можно использовать InternalsVisibleToAttribute класс, определенный в [1 110] System.Rutime.CompilerServices , чтобы объявить, что тип как доступный кодирует в том же блоке или указанном блоке только.

Вы используете первое, как Вы используете любой другой модификатор доступа такой как private. К остроумию:

internal class MyClass {
    ...
}

Вы используете второе следующим образом:

[assembly:InternalsVisibleTo("MyFriendAssembly", PublicKey="...")]
internal class MyVisibleClass {
    ...
}

Оба из них можно справедливо считать эквивалентом friend в C#.

Методы, которые являются protected , уже доступны производным классам.

34
ответ дан 29 November 2019 в 06:21
поделиться

Ваш подкласс будет в состоянии получить доступ к защищенным членам класса, который Вы наследовали.

Вы надеющийся предоставлять доступ к этим защищенным участникам к другому классу?

1
ответ дан 29 November 2019 в 06:21
поделиться
  1. internal эквивалент C# VB.NET friend ключевое слово, как Вы предположили (в противоположность замене)

  2. , Использование следующим образом

    internal void Function() {}
    internal Class Classname() {}
    internal int myInt;
    internal int MyProperty { get; set; }
    
  3. , Это, в основном, является модификатор доступа, который предусматривает, что доступность класса / функция / переменная / свойство, отмеченное как внутреннее, - то, как будто это было общедоступно к блоку, это компилируется в, и частное к любым другим блокам

6
ответ дан 29 November 2019 в 06:21
поделиться

Внутренний эквивалент друга. Защищенный метод только доступен в том же классе или от наследника. При попытке представить защищенные методы от наследника, можно обернуть их в открытые методы.

0
ответ дан 29 November 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: