vbTab可以对齐列文字
Sub SquareByReference(ByRef number As Integer)
SquareByReference((number3)) ' passes number3 by value
如果参数封闭在圆括号中,参数number3的一个副本(相当于一个表达式)传递给过程,即使过程头包含关键字byref,number3不会发生改变。

' returns dice image
Function GetDiceImage(ByVal DiceValue As Integer, _
Optional ByVal baseImageName As String = "dice") As System.Drawing.Image
Return Image.FromFile(Directory.GetCurrentDirectory & _
"\Images\" & baseImageName & DiceValue & ".png")
End Function ' GetDiceImage
如何获取当前目录,即与执行文件相同的目录。
向过程传递数组,注意关键字ByVal,尽管如此,数组传递引用
Sub DayData(ByVal ar As Integer())
End Sub
Sub Main()
Dim ar As Integer() = New Integer(24) {}
DayData(ar)
End Sub
is可以测试两个变量是否是同一个地址。ByVal关键字可以被调用的过程修改调用者的引用。
Const变量必须在声明时初始化,只能初始化为在编程时已经确定的常量值。Const一定是Shared类型的,并不需要Shared关键字的限定。
ReadOnly只能赋值一次,要么在声明时,要么在类的构造函数中。实例ReadOnly在实例的构造函数中赋值,Shared ReadOnly在共享构造函数中赋值。ReadOnly的值可以在运行时确定。
每个类都应该覆盖ToString方法,使其返回那个类对象的有用信息。
成员函数一旦被继承,就始终使用子类中定义的函数。
要避免函数过分的扩散;
创建太多的类,客户很难在一个大型的类库中找到合适的类。另一个极端是创建太少的类,每个类提供了实际的功能,但是这样的类的功能太多了。
Xor表示改变现有状态的意思。见下面代码:

' use Xor to toggle italic, keep other styles same
Private Sub chkItalic_CheckedChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles chkItalic.CheckedChanged
lblOutput.Font = New Font(
lblOutput.Font.Name, lblOutput.Font.Size, lblOutput.Font.Style Xor FontStyle.Italic)
End Sub ' chkItalic_CheckedChanged
' use Xor to toggle bold, keep other styles same
Private Sub chkBold_CheckedChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles chkBold.CheckedChanged
lblOutput.Font = New Font(
lblOutput.Font.Name, lblOutput.Font.Size, lblOutput.Font.Style Xor FontStyle.Bold)
End Sub ' chkBold_CheckedChanged
不用检查复选框的状态,只是简单的操作相应的位枚举变量。Xor后面的变量始终为真,前面的变量是假的时候,结果变成真。前面变量为真的时候变成假。对于Flag型式的枚举变量,相当于简单的Not表达式。
1表示大于;0表示等于;-1表示小于