2013-02-06 42 views
7

公共据MSDNVB.NET类成员默认

公开是当你 不需要限制对它的访问编程元素的正常水平。请注意,如果您不另外声明,则在接口,模块,类或结构 中声明的 元素的访问级别默认为公共。

所以,如果我宣布在VB.NET类方法不指定访问修饰符,那么它是公共默认:

Sub DoSomething() 

End Sub 

这是疯了!我希望会员在默认情况下是私密的,只有那些明确标记为“公开”才能在课堂外可见的成员。像在C#中一样...我如何修改这个行为?

+6

为什么输入“私人”过于繁琐? –

+13

就我个人而言,我认为隐式访问修饰符作为一个整体是一个坏主意。如果您始终明确包含访问修饰符,则其他读者的代码将更加清晰。 –

+0

@MitchWheat - 所需的编程理念:语言默认值应该是“保守的”;不适合用于暴露无意暴露的东西。要求程序员做一些事情,他们不应该这样做,这是一种次优的解决方案。这就是我们拥有电脑的原因:让人们更轻松。当然,可以在IDE级别解决这个问题:除非指定了修饰符,否则IDE会自动添加“Private”。 – ToolmakerSteve

回答

10

这是疯了!我希望会员在默认情况下是私密的

由于Fredrik已经评论过,您应该始终提供明确的访问修饰符。

如果您始终在 中明确包含访问修饰符,则其他读者的代码将更加清晰。

我认为这是由于向下兼容性或开发人员根本不熟悉访问修饰符。

但是你是对的,就像在C#中,我会建议尽可能使所有内容尽可能隐私。您可以在需要时更公开。

Declaration Contexts and Default Access Levels (VB.NET)

任何想法如何修改此行为?

我不认为有可能在Visual Studio的某处指定默认访问修饰符。你可以尝试建立其在这里提出了一个模板类(未测试):

Visual C# 2010 Express: Specify default access modifier for new classes?