Visual Basic 基础
最后修改于 2023 年 10 月 18 日
在本 Visual Basic 教程中,我们将介绍 Visual Basic 语言的基本编程概念。 我们将介绍非常基本的程序。 我们将使用变量、常量和基本数据类型。 我们读写控制台; 我们提到了变量插值。
以下是一个简单的 Visual Basic 程序。
Option Strict On
Module Example
Sub Main()
Console.WriteLine("This is Visual Basic")
End Sub
End Module
我们将逐行解释程序。
Option Strict On
Option Strict 语句可以是 On 或 Off。 默认值为 Off,为了向后兼容旧的 Visual Basic 程序。 建议在所有新程序中使用此语句。 当该语句为 On 时,编译器将检测到各种不良的编程实践。
Module Example
...
End Module
每个 Visual Basic 程序都应该结构良好。 源代码被放置在模块中。 在模块中,代码被进一步划分为过程和函数。 一个结构良好的模块更易于维护,并且不易出错。 在我们的例子中,我们创建一个名为 Example 的模块。 为此,我们使用 Module 关键字。 模块定义以 End Module 语句结束。
Sub Main()
...
End Sub
使用 Sub 关键字,我们创建一个过程。 Sub 源自子例程一词。 子例程和过程是同义词。 在 Visual Basic 中,首选词是过程。 一个过程是一个 Visual Basic 代码块。 这是为了实现代码的模块化。
Console.WriteLine("This is Visual Basic")
在此代码行中,我们将字符串字面量 "This is Visual Basic" 打印到控制台。 要将消息打印到控制台,我们使用 Console 类的 WriteLine 方法。 它表示控制台应用程序的标准输入、输出和错误流。
$ dotnet run This is Visual Basic
我们也可以使用 Console 类来读取值。
Option Strict On
Module Example
Dim name As String
Sub Main()
Console.WriteLine("Enter your name: ")
name = Console.ReadLine()
Console.WriteLine("Hello {0}", name)
End Sub
End Module
第二个程序将从控制台读取一个值并将其打印出来。
Dim name As String
Dim 关键字用于声明变量。 该变量名为“name”。 与在程序生命周期中仅存储一个值的常量不同,变量可以存储各种不同的值。 As 关键字定义变量的数据类型。 我们的变量将保存字符串值。
name = Console.ReadLine()
我们从终端读取一行。 当我们按下回车键时,字符串将分配给 name 变量。
Console.WriteLine("Hello {0}", name)
我们构建一条消息并将其打印到控制台。 {0} 字符被替换为 name 变量的内容。
$ dotnet run Enter your name: Jan Hello Jan
命令行参数
Visual Basic 程序可以接收命令行参数。 有几种从命令行检索参数的方法。
Option Strict On
Module Example
Dim cline As String
Sub Main()
cline = Command()
Console.WriteLine(cline)
End Sub
End Module
在上面的程序中,我们获取命令行参数并将它们打印到终端。
cline = Command()
Command 函数用于获取参数。
Console.WriteLine(cline)
我们将命令行参数打印到终端。
$ dotnet run 1 2 3 4 5 1 2 3 4 5
Option Strict On
Module Example
Dim size As Integer
Sub Main(ByVal cmdArgs() As String)
size = cmdArgs.Length
If size > 0 Then
For i As Integer = 0 To size - 1
Console.WriteLine(cmdArgs(i))
Next
End If
End Sub
End Module
命令行参数可以传递给 Main 过程。
Sub Main(ByVal cmdArgs() As String)
此 Main 过程接收一个字符串数组作为命令行参数。
size = cmdArgs.Length
我们确定数组的大小。
If size > 0 Then
For i As Byte = 0 To size - 1
Console.WriteLine(cmdArgs(i))
Next
End If
我们遍历数组并将所有参数打印到控制台。 请注意,在这种情况下,程序名称不包含在参数中。
$ dotnet run 2 3 5 2 3 5
我们提供三个数字作为命令行参数,这些数字被打印到控制台。
变量和常量
变量 是存储数据的地方。 一个变量有一个名称和一个数据类型。 数据类型决定了可以为变量分配哪些值。 在程序运行期间,变量可以获得相同数据类型的各种值。 在对变量进行任何引用之前,变量始终初始化为其类型的默认值。
变量用 Dim 关键字声明。 与变量不同,常量 保留它们的值。 一旦初始化,它们就不能被修改。 常量是用 Const 关键字创建的。
Option Strict On
Module Example
Sub Main()
Dim city As String = "New York"
Dim name As String = "Paul", age As Integer = 35,
nationality As String = "American"
Console.WriteLine(city)
Console.WriteLine(name)
Console.WriteLine(age)
Console.WriteLine(nationality)
city = "London"
Console.WriteLine(city)
End Sub
End Module
在上面的例子中,我们使用了四个变量。
Dim city As String = "New York"
我们声明一个 String 类型的 city 变量,并将其初始化为 "New York" 值。
Dim name As String = "Paul", age As Integer = 35,
nationality As String = "American"
我们可以使用一个 Dim 关键字声明和初始化更多变量; 它们用逗号分隔。
Console.WriteLine(city) Console.WriteLine(name) Console.WriteLine(age) Console.WriteLine(nationality)
我们将变量的值打印到终端。
city = "London"
我们为 city 变量分配一个新值。
正如我们上面已经说过的,常量不能更改它们的初始值。
Option Strict On
Module Example
Sub Main()
Const WIDTH As Integer = 100
Const HEIGHT As Integer = 150
Dim var As Integer = 40
var = 50
Rem WIDTH = 110
End Sub
End Module
在此示例中,我们声明两个常量和一个变量。
Const WIDTH As Integer = 100 Const HEIGHT As Integer = 150
我们使用 Const 关键字通知编译器我们声明一个常量。 按照约定,常量用大写字母书写。
Dim var As Integer = 40 var = 50
我们声明并初始化一个变量。 稍后,我们为变量分配一个新值。
Rem WIDTH = 110
这对于常量来说是不可能的。 如果我们取消注释此行,则会出现编译错误。
变量插值
变量插值 是用字符串字面量中的值替换变量。 变量插值的另一个名称是:变量替换和变量扩展。
Option Strict On
Module Example
Dim age As Byte = 34
Dim name As String = "William"
Dim output As String
Sub Main()
output = $"{name} is {age} years old."
Console.WriteLine(output)
End Sub
End Module
在 Visual Basic 中,字符串是不可变的。 我们无法修改现有字符串。 变量插值发生在字符串创建期间。
Dim age As Byte = 34 Dim name As String = "William" Dim output As String
这里我们声明了三个变量。
output = $"{name} is {age} years old."
插值字符串以 $ 字符开头。 括号内的变量将替换为其内容。
$ dotnet run William is 34 years old.
本章介绍了 Visual Basic 语言的一些基础知识。