在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#中?
答案 0 :(得分:10)
Friend
用于与较旧的Visual Basic代码兼容,通常在包含它的表单之外使用控件。
在C#中没有必要。
private
是更好的解决方案。
答案 1 :(得分:4)
通常,VB.NET倾向于暴露太多(隐私主要是选择加入)而C#是反向的,隐私通常是选择退出。正如其他人提到的那样,原因很可能是由于VB.NET的遗产以及暴露一切的“友好”;它使得入门变得容易,但也导致设计不良和额外的努力以确保松耦合。
答案 2 :(得分:2)
我认为这是为了帮助从早期版本的VB迁移,因为表单中的代码往往会更频繁地从外部修改。朋友也是默认的。
从代码设计的角度来看,私有更好,并且在C#中使用,因为我猜没有类似的历史编码实践!
答案 3 :(得分:0)
也许Visual Basic试图让新程序员更友好,并允许他们从项目的任何地方查看表单中的所有朋友控件?
朋友是内在的,我唯一能想到的,我不确定为什么默认值会有所不同,而不是帮助新程序员......