发布网友
共1个回答
热心网友
命名指南在类库开发的设计准则 [ http://msdn.microsoft.com/zh-cn/library/ms229042(VS.80).aspx ] 中介绍。您无需为了符合指南而更改由 Visual Studio 设计器工具创建的对象的名称。 使用命名空间限定,而不添加 Imports 语句。如果在默认情况下将命名空间导入到一个项目,您无需完全限定此代码,因为在复制和粘贴此代码时,它将与 Intellisense 一起以非限定形式运行。要将长的代码行换行以便于阅读时,可以在“.”后面使限定名换行。例如: 复制代码 Dim collection As System.Diagnostics. _ InstanceDataCollectionCollection 请不要在变量名中使用“My”或“my”。这样会与 My 对象混淆。 布局约定 好的布局通过设置格式,强调代码的结构并使代码更易于阅读。 通过很有用的列表功能,用默认设置(智能缩进、4 字符缩进、将制表符保存为空格)对代码的格式进行设置。有关更多信息,请参见“选项”对话框 ->“文本编辑器”->“Basic”->“VB 专用” [ http://msdn.microsoft.com/zh-cn/library/y0y5th94(VS.80).aspx ] 。每行仅使用一个语句。不要使用“:”。 每行仅使用一个声明。 将连续行缩进一个制表位。 在方法和属性定义之间添加至少一个空白行。 注释约定 不要在代码行的结尾处使用注释。将注释放在单独行。 注释文本以大写字母开头。 注释以句点结束。 在注释分隔符 (') 和注释文本之间插入一个空格。 复制代码 ' Here is a comment. 请勿创建已设置格式的将注释包含在内的星号块。 程序结构 在使用 Main 方法时,对新的控制台应用程序使用默认结构,对命令行参数使用 My。 复制代码 Sub Main() For Each argument As String In My.Application.CommandLineArgs ' Add code here to use the string variable. Next End Sub语言指南 String 数据类型 使用 & 来连接字符串: 复制代码 MsgBox("hello" & vbCrLf & "goodbye") 若要将字符串追加到循环,请使用 StringBuilder [ http://msdn.microsoft.com/zh-cn/library/system.text.stringbuilder(VS.80).aspx ] 对象:复制代码 Dim longString As New System.Text.StringBuilder For count As Integer = 1 To 1000 longString.Append(count) Next无符号数据类型 使用 Integer 而不是无符号类型,除非内存不足。数组 初始化声明行上的数组时,请使用短语法: 复制代码 Dim letters() As String = {"a", "b", "c"} 而不是: 复制代码 Dim letters() As String = New String() {"a", "b", "c"} 将数组指定符置于变量上而不是类型上: 复制代码 Dim letters() As String = {"a", "b", "c"} 而不是: 复制代码 Dim letters As String() = {"a", "b", "c"} 声明和初始化基本数据类型的数组时,使用 { } 语法: 复制代码 Dim letters() As String = {"a", "b", "c"} 而不是: 复制代码 Dim letters(2) As String letters(0) = "a" letters(1) = "b" letters(2) = "c"使用 With 关键字 遇到对一个对象的一系列调用时,请考虑使用 With 关键字。在 For 或 For Each 语句中声明循环变量 示例:复制代码 For count As Integer = 0 To 2 MsgBox(names(count)) Next 示例:复制代码 For Each name As String In names MsgBox(name) Next使用 Try...Catch 对实现 Dispose 方法的对象始终使用 Try...Catch。 请勿使用 On Error Goto。 使用 Using 语句 如果使用 Try...Catch 语句,且 Finally 块中的唯一代码为对 Dispose 的调用,请改为使用 Using。IsNot 关键字 优先使用 IsNot 关键字,而不是 Not ... Is Nothing。 窗体的默认实例 使用 Form1.ShowDialog 而不是 My.Forms.Form1.ShowDialog。 New 关键字 使用短实例化: 复制代码 Dim employees As New Collection() 而不是: 复制代码 Dim employees As Collection = New Collection() 使用无参数的构造函数,然后使用 With 设置属性: 复制代码 Dim orderLog As New EventLog() With orderLog .Log = "Application" .Source = "Application Name" .MachineName = "Machine Name" End With事件处理 使用 Handles 而不是 AddHandler: 复制代码 Private Sub MenuItem1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MenuItem1.Click 使用 AddressOf,且不要显式实例化此委托: 复制代码 Dim closeItem As New MenuItem("Close", AddressOf MenuItem1_Click) Me.MainMenu1.MenuItems.Add(closeItem) 定义事件时,使用短语法并让编译器定义此委托: 复制代码 Public Event WhatHappened(ByVal source As Object, _ ByVal e As WhatHappenedEventArgs)使用共享成员 使用类名称调用 Shared 成员,而不是从实例变量调用。 MsgBox 函数 使用 MsgBox,而非 MessageBox.Show 或 Console.WriteLine。 使用 My 命名空间 优先使用 My 功能,而不是 .NET Framework 类库或 Visual Basic 运行时库。使用 Visual Basic 运行时库成员 优先使用 Visual Basic 运行时库,而不是 .NET Framework 类库。示例指南 通用 遵循“Design Guidelines for Class Library Developers”(类库开发人员设计指南) [ http://msdn.microsoft.com/library/default.asp.aspx?url=/library/en-us/cpgenref/html/cpconnetframeworkdesignguidelines.asp ] ( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconnetframeworkdesignguidelines.asp) 中的设计指南。指定 MsgBox 调用的提示和标题。 在适当时使用资源文件。 在每个文件中使用 Option Strict On,或将其用作项目设置。 在编译时打开所有警告。 在一个文件中仅定义一个 Class、Structure 或 Interface。 使用默认编码保存文件。 本地化 在可能的地方使用 AutoSize 属性。 不要隐藏或重叠控件。 不要排列控件以创建语句。 不要通过从另一字符串抽出字符来生成字符串。 使用非特定区域性的图形。 仅使用 Tahoma 或 MS Sans Serif 字体。 辅助功能 使用颜色选取器对话框的“系统”选项卡中的颜色。 为所有菜单、标签和按钮等使用快捷键。 按照下表中的描述设置控件属性。 属性 设置 AccessibleDescription 控件的描述。AccessibleName 控件名称。AccessibleRole 默认值,如果控件有另一角色,则重置该属性。TabIndex 按逻辑顺序设置。Text 所有可单击的控件都应有一个键盘访问键(快捷键)。Font size 默认值,或设置为 10 磅或以上Forecolor 默认值Backcolor 默认值BackgroundImage默认值