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

问题描述 投票:7回答:4

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

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

的.cs

private Label Label1;

.vbr

Friend WithEvents Label1 as Label;

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

c# .net vb.net winforms field
4个回答
10
投票

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

对于新代码,private是更好的解决方案。


4
投票

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


2
投票

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

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


0
投票

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

朋友是内部的,我唯一能想到的,我不知道为什么默认值会不同于帮助新程序员...

© www.soinside.com 2019 - 2024. All rights reserved.