为什么Default.aspx关联类叫_Default?

时间:2014-07-25 11:24:10

标签: c# asp.net visual-studio-2013

我使用共享文件来保持公司名称,版权,版本......在解决方案中的所有项目之间保持同步。该文件还包含

[assembly: CLSCompliant(true)]

我需要将我的DLL标记为符合CLS。在asp.net Web表单应用程序中,与Default.aspx关联的类称为_Default,并且不符合CLS并生成警告。

将类重命名为Default似乎没问题。有什么缺点吗?为什么这个类叫_Default?

2 个答案:

答案 0 :(得分:3)

您只能使用Default,因为C#区分大小写。 default是保留字。

发布者/模板添加了额外的_,因为ASP.NET也可以与VB.NET一起使用,而Default(不区分大小写)也在VB中保留。

标准模板将其命名为Default.ASPX,因为它是IIS的默认配置中的“标准文档”。

您的类名实际上不必与ASPX文件(URL)名称匹配,您可以将其称为class DefaultPage或其他名称。只需修复Inherits="..."属性即可。

答案 1 :(得分:1)

类的命名是算法。通常它会将名称基于文件的名称,因此foo.aspxBar.aspx将导致fooBar类。

由于default是C#关键字(区分大小写)而Default是VB.NET关键字(不区分大小写),因此自动命名使用下划线来避免这些关键字。

(值得注意的是,在ASP.NET项目中,CLSCompliance通常不是非常重要,因为使用该程序集不会成为使用其他.NET语言编写的其他代码,这使得这种方法成为可能。避免使用关键词更合理。)

更改名称没有坏处;该名称仅提供给您,以方便您停止键入该代码。

我建议避免使用Default,部分原因是因为您要在VB.NET中与关键字发生冲突,但主要是因为因为您不是算法,所以您应该能够想到该类(及其相关页面)的作用更有意义。也就是说,我承认经常使用DefaultPage时,我真的无法想到"是该文件夹的默认页面"在编码时。