# Visual Basic 语法结构

> 原文： [https://zetcode.com/lang/visualbasic/lexis/](https://zetcode.com/lang/visualbasic/lexis/)

像人类语言一样，计算机语言也具有词汇结构。 Visual Basic 程序的源代码由令牌组成。 令牌是原子代码元素。 在 Visual Basic 中，我们具有注释，变量，字面值，运算符，定界符和关键字。

Visual Basic 程序由 Unicode 字符集中的字符组成。

## 注释

注释被人类用来阐明源代码。 Visual Basic 中的所有注释都使用`'`字符或`Rem`关键字。

```vb
Option Strict On

' This is comments.vb 
' Author: Jan Bodnar
' ZetCode 2010

Module Example

    Rem program starts here
    Sub Main()

        Console.WriteLine("This is comments.vb")

    End Sub

End Module

```

Visual Basic 编译器将忽略注释。

## 空白

Visual Basic 中的空白用于分隔源文件中的标记。 它用于提高源代码的可读性。


在某些地方需要空格。 例如，在`Dim`关键字和变量名之间。 在其他地方，这是禁止的。 它不能出现在变量标识符或语言关键字中。

```vb
a=1
b = 2
c  =  3

```

标记之间放置的空间量与 Visual Basic 编译器无关。

## 行继续符

如果一条语句跨越多行，则必须使用行继续符。 这与基于 C 和 C 的语言不同。

```vb
Console.WriteLine("The length of the first string is " _
    + str1.Length.ToString() + " characters")

```

主要是出于可读性原因，我们不想一行中包含太多字符。 我们打破界限，继续下一行。 在 Visual Basic 中，我们必须使用行继续符，否则编译将失败。

## 变量

变量是一个标识符，它保存一个值。 在编程中，我们说我们为变量分配了一个值。 从技术上讲，变量是对存储值的计算机内存的引用。 变量名称可以包含字母数字字符和下划线。 标识符可以以字符或下划线开头。 它可能不能以数字开头。 变量名称不区分大小写。 这意味着`Name`，`name`或`NAME`引用相同的变量。 变量名称也不能与语言关键字匹配。

```vb
Dim name23 As String
Dim _col As Integer
Dim birth_date As Date

```

这些是有效的 Visual Basic 标识符。

```vb
Option Strict On

Module Example

    Sub Main()

        Dim name As String = "Robert"
        Dim Name As String = "Julia"

        Console.WriteLine(name)
        Console.WriteLine(Name)

    End Sub

End Module

```

由于标识符不区分大小写，因此无法编译此代码。

## 字面值

字面值是类型的特定值的字面值表示。 字面值类型包括布尔值，整数，浮点数，字符串，字符和日期。 从技术上讲，字面值将在编译时分配一个值，而变量将在运行时分配。

```vb
Dim age As Byte = 29
Dim nationality As String = "Hungarian"

```

在这里，我们为变量分配了两个字面值。 数字 29 和字符串“匈牙利语”是字面值。

```vb
Option Strict On

Module Example

    Sub Main()

        Dim sng As Boolean = True
        Dim name As String = "James"
        Dim job As String = Nothing
        Dim age As Byte = 23
        Dim weight As Single = 68.5
        Dim born As DateTime = DateValue("November 12, 1987")

        Console.WriteLine("His name is {0}", name)

        If sng Then
            Console.WriteLine("He is single")
        Else 
            Console.WriteLine("He is in a relationship")
        End If

        Console.WriteLine("His job is {0}", job)
        Console.WriteLine("He weighs {0} kilograms", weight)
        Console.WriteLine("He was born in {0}", _
             Format(born, "yyyy"))

    End Sub

End Module

```

在上面的示例中，我们还有其他字面值。 布尔字面值可以具有`True`或`False`值。 `James`是字符串字面值。 `Nothing`代表任何数据类型的默认值。 `23`是一个整数字面值。 `68.5`是浮点字面值。 最后，`November 12, 1987`是日期字面值。

```vb
$ ./literals.exe 
His name is James
He is single
His job is 
He weighs 68.5 kilograms
He was born in 1987

```

这是程序的输出。

## 运算符

运算符是用于对某个值执行操作的符号。

```vb
+    -    *    /    \    ^     &
=    +=   -=   *=   /=   \=    ^=
<    >    &=  >>=   <<=   >=   <= 
>>   <>   << 

```

这些是 Visual Basic 运算符。 我们将在本教程的后面部分讨论运算符。

## 分隔符

分隔符是一个或多个字符的序列，用于指定纯文本或其他数据流中单独的独立区域之间的边界。

```vb
(   )   {   }   !   #   ,   .   :   :=   ?

```

这些是 Visual Basic 分隔符。

```vb
Dim language As String = "Visual Basic"

```

双精度字符用于标记字符串的开头和结尾。

```vb
Console.WriteLine("Today is {0}", GetToday)

```

括号（方括号）用于标记方法签名。 签名由方法参数组成。 圆括号用于表示求值值。

```vb
Dim array() As Integer = { _
    2, 4, 5, 6, 7, 3, 2 }

```

大括号也用于创建数组。

## 关键词

关键字是 Visual Basic 语言中的保留字。 关键字用于在计算机程序中执行特定任务。 例如，打印值，执行重复性任务或执行逻辑操作。 程序员不能将关键字用作普通变量。

Visual Basic 具有丰富的关键字。 其中许多内容将在本教程中进行解释。 关键字包括`If`，`Else`，`Dim`，`For`，`Date`，`Double`，`Or`，`Exit`等。

```vb
Option Strict On

Module Example

    Sub Main()

        Dim i As Integer

        For i = 0 To 35 Step 5
            Console.WriteLine(i)
        Next

    End Sub
End Module

```

在上面的示例中，我们使用以下关键字：`Option`，`On`，`Module`，`Sub`，`Dim`，`As`，`Integer`，`For`，`To`，`Step` ，`Next`和`End`是 Visual Basic 关键字。

在 Visual Basic 教程的这一部分中，我们介绍了 Visual Basic 语言的基本词汇。