在Windows窗体项目中,为什么设计者默认使用VB.NET中的Friend WithEvents
属性和C#中的private
属性?
例如,在form.designer.
文件中:
的.cs
private Label Label1;
.vbr
Friend WithEvents Label1 as Label;
对于WithEvents
来说,它或多或少是明确的(显然使用Handles
)。但为什么在Visual Basic中的朋友和C#中的私人?
Friend
用于与较旧的Visual Basic代码兼容,通常在包含它的表单之外使用控件。
在C#中没有必要。
对于新代码,private
是更好的解决方案。
通常,VB.NET倾向于暴露太多(隐私主要是选择加入)而C#是反向的,隐私通常是选择退出。正如其他人提到的那样,原因很可能是由于VB.NET的遗产以及暴露一切的“友好”;这使得它易于上手,但也导致设计不良和额外的努力,以确保松耦合。
我认为这是为了帮助从早期版本的VB迁移,因为表单中的代码往往会更频繁地从外部修改。朋友也是默认的。
从代码设计的角度来看,Private是更好的,并且在C#中使用,因为我猜没有类似的历史编码实践!
也许Visual Basic试图让新程序员更友好,并允许他们从项目的任何地方看到表单中的所有朋友控件?
朋友是内部的,我唯一能想到的,我不知道为什么默认值会不同于帮助新程序员...