Visual Basic中的“Friend WithEvents”与C#中的“private”

时间:2009-12-17 15:02:51

标签: c# .net vb.net winforms field

在Windows窗体项目中,为什么设计器默认使用VB.NET中的Friend WithEvents属性和C#中的private属性?

例如,在form.designer.文件中:

的.cs

private Label Label1;

的.vb

Friend WithEvents Label1 as Label;

对于WithEvents,它或多或少是明确的(显然使用Handles)。但为什么 Friend 在Visual Basic中和私有在C#中?

4 个答案:

答案 0 :(得分:10)

Friend用于与较旧的Visual Basic代码兼容,通常在包含它的表单之外使用控件。
在C#中没有必要。

对于新代码,

private是更好的解决方案。

答案 1 :(得分:4)

通常,VB.NET倾向于暴露太多(隐私主要是选择加入)而C#是反向的,隐私通常是选择退出。正如其他人提到的那样,原因很可能是由于VB.NET的遗产以及暴露一切的“友好”;它使得入门变得容易,但也导致设计不良和额外的努力以确保松耦合。

答案 2 :(得分:2)

我认为这是为了帮助从早期版本的VB迁移,因为表单中的代码往往会更频繁地从外部修改。朋友也是默认的。

从代码设计的角度来看,私有更好,并且在C#中使用,因为我猜没有类似的历史编码实践!

答案 3 :(得分:0)

也许Visual Basic试图让新程序员更友好,并允许他们从项目的任何地方查看表单中的所有朋友控件?

朋友是内在的,我唯一能想到的,我不确定为什么默认值会有所不同,而不是帮助新程序员......