'Друг WithEvents' в Visual Basic по сравнению с 'частным' в C#

В проектах Windows Forms, почему делает разработчика значением по умолчанию, используют Friend WithEvents атрибуты в VB.NET и private в C#?

Например, в a form.designer. файл:

.cs

private Label Label1;

.vb

Friend WithEvents Label1 as Label;

Для WithEvents, это более или менее ясно (для использования Handles, по-видимому). Но почему Друг в Visual Basic и частный в C#?

7
задан Peter Mortensen 16 June 2017 в 16:42
поделиться

4 ответа

Friend используется для совместимости со старым кодом Visual Basic, где обычно элемент управления использовался вне формы, которая его содержала.
В C # такой необходимости нет.

private - лучшее решение для нового кода.

10
ответ дан 6 December 2019 в 12:51
поделиться

Возможно, Visual Basic пытается быть более дружелюбным к новым программистам и позволяет им видеть все элементы управления Friend в форме из любой точки своего проекта?

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

0
ответ дан 6 December 2019 в 12:51
поделиться

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

Private лучше с точки зрения дизайна кода и используется в C #, поскольку, я полагаю, не существует аналогичной исторической практики кодирования!

2
ответ дан 6 December 2019 в 12:51
поделиться

Обычно VB.NET склоняется к слишком большому разглашению (конфиденциальность - это в основном согласие), тогда как C # - обратное, конфиденциальность обычно - отказ. Как отмечали другие, причина, вероятно, связана с наследием VB.NET и «дружелюбием» раскрытия всего; это облегчает начало работы, но также приводит к плохой конструкции и дополнительным усилиям для обеспечения слабого сцепления.

4
ответ дан 6 December 2019 в 12:51
поделиться