Visual Basic快速入门

IT教程 12个月前 https://www.renrenfan.com.cn
362

visual basic教程

Visual Basic快速入门

文章目录

  • HelloWorld
  • 基本数据类型
  • 变量和常量
  • 运算符
  • 条件语句
  • Select语句
  • 循环语句
  • While循环
  • For循环
  • Foreach循环
  • With语句
  • 跳转语句
    • Exit语句
    • Continue语句
    • Goto语句
  • 数组
  • 函数
  • Function函数
  • 可变参数列表
  • 面向对象编程
    • 抽象类和接口
  • 继承
    • 静态成员
    • 模块
  • 异常处理

Basic语言的全名是Beginner’s All-purpose Symbolic Instruction Code(初学者通用的符号指令代码),是几十年前流行过的一门语言。我高中时候一门数学选修课中使用的也是Basic语言。我还记得当时我为了使用Basic语言,还从网上下了一个简陋的QBasic工具。当时第一次接触编程的我对编程语言充满了兴趣。当然在现在,Basic语言已经基本没什么用了。现在还在使用的Basic语言大概就是微软的Visual Basic了。今天就来介绍一下Visual Basic语言。需要注意的是,VB语言运行在微软的CLR上,所以如果你对C#比较熟悉的话,学习VB就很简单了。

HelloWorld

照例,第一个项目自然应该是HelloWorld。打开Visuall Studio,创建一个VB项目,然后就会出现如下图所示的代码。

Visual Basic快速入门

来解释一下HelloWorld的代码。首先第一行是导入类库,和C#、java的import语句是一个道理。然后下面定义了一个Program模块,其中定义了Main函数,在函数中输出Hello World。在VB中,不使用大括号作为块分隔符,而是使用End语句来结束块作用域。

Imports System

Module Program
    Sub Main(args As String())
        Console.WriteLine("Hello World!")
    End Sub
End Module

基本数据类型

由于VB和C#都是运行在CLR上的语言,所以其实它们的基本类型是一样的,都有有/无符号的各种长度整数、单精度双精度浮点数、布尔类型、字符和字符串等类型。下面的代码仅列出几个常用的。

Public Class DataType
    Sub DataType()
        Dim b As Byte
        Dim i As Integer
        Dim s As Single
        Dim d As Double
        Dim c As Char
        Dim str As String
        Dim bool As Boolean

        b = 100
        i = 1000
        s = 1.5
        d = 3.1415926
        c = "c"c
        str = "abc"
        bool = True
    End Sub
End Class

变量和常量

VB的变量定义也和C系语言不同,使用的是Dim 变量名 As 变量类型的语法进行定义。变量必须先定义才能使用。如果想同时定义多个变量,可以这么写。

Dim i, j As Integer

如果想在定义变量的同时初始化,可以这样。

Dim bool As Boolean = True

如果要定义常量,可以变量类似,只不过使用Const关键字。

Const cs As Integer = 1000

运算符

先来看看算术运算符。

运算符 用途 例子
^ 幂运算符 3 ^ 2 = 9
+ 加法
- 减法
* 乘法
/ 小数除法 3 / 2 = 1.5
\ 整除 3 \ 2 = 1
MOD 取模 6 MOD 4 = 2

然后是比较运算符。这里需要注意的就是VB的相等和不等和其他语言的可能不太一样。

运算符 用途
= 相等
<> 不等
< 小于
> 大于
<= 小于等于
>= 大于等于

条件语句

先来看看VB中的If语句,其基本结构是If 条件 Then 执行体 Else 执行体 End If

Dim num As Integer = 5
If num\2 = 0 Then
     Console.WriteLine($"{num} is even")
 Else
     Console.WriteLine($"{num} is odd")
 End If

如果需要多重If语句,可以添加ElseIf语句块。

If num = 1 Then
   Console.WriteLine($"{num} is 1")
ElseIf num = 2
    Console.WriteLine($"{num} is 2")
Else
    Console.WriteLine($"{num} is other")
End If

Select语句

Select语句相当于其他语言中的switch语句,如果没有匹配项,会执行Case Else语句块。

Dim c As Char = "c"c
        Select c
            Case "a"c
                Console.WriteLine("a")
            Case "b"c, "c"c
                Console.WriteLine("b or c")
            Case Else
                Console.WriteLine("others")

        End Select

循环语句

Do语句循环

Do语句循环有两种结构,第一种是循环条件在前。先来看看Do-While语句,当满足循环条件的时候会继续循环,不满足条件时跳出循环。这里顺便提一下,VB中没有块注释,只有单行注释,以单引号开头,直到句末。

'Do While语句
        Dim i = 0
        Do While i < 5
            If i = 3 Then
                Exit Do
            End If
            Console.Write(i)
            i += 1
        Loop

再来看看Do-Until语句,和Do-While相反,在不满足条件的时候会执行循环,满足条件时跳出循环。

 'Do Until语句
        i = 0
        Do Until i > 5
            If i < 3 Then
                i += 2
                Continue Do
            End If
            Console.Write(i)
            i += 1
        Loop
 

While循环

还有就是传统的While循环。

'While循环
        i = 0
        While i < 5
            Console.Write(i)
            i += 1
        End While

For循环

下面是For循环的例子,在For循环中可以使用Step指定步长。

For counter As Integer = 1 To 9 Step 1
            Console.Write(counter)
        Next

Foreach循环

Dim array() as Integer = {1, 2, 3, 4, 5, 6, 7}
        For Each item As Integer In array
            Console.Write(item)
        Next

With语句

With语句其实不算循环语句,不过我看的这个VB教程把With语句放到这里说,那我也放到这里好了。With语句在有些语言中也有,主要用途是节省代码数量。比方说有下面这个Person类。

Public Class Person
    Public Property Name As String
    Public Property Age As Integer
End Class

假如有一个person对象多次出现的话,就可以使用With语句,在With语句中,点访问符默认指向的就是With语句指定的对象。

Dim person As Person = New Person
        With person
            .Name = "yitian"
            .Age = 25
            Console.WriteLine($"Person(Name:{.Name}, Age:{.Age})")
        End With
 

跳转语句

Exit语句

Exit语句用于结束某个代码块,它的形式如下。想用Exit退出哪个代码块,就写哪个代码块的类型。

Exit { Do | For | Function | Property | Select | Sub | Try | While }

Continue语句

Continue语句用于结束当前循环,直接进行下一次循环。它的形式如下,后面跟要继续的代码块类型。

Continue { Do | For | While }

Goto语句

最后就是Goto语句,它会直接跳转到指定的标签处。

		'Goto语句
        GoTo Ending
        Console.WriteLine("Print something")
        Ending:
        Console.WriteLine("This is end.")

数组

先来看看数组定义。VB中的数组比较特殊,定义一个Dim a1(3),其实是下标0-4长度为四的一维数组,这一点要非常注意。

'下标0-9的十个元素的数组
        Dim array1(9) As Integer
        '11X11的二维数组
        Dim array2(2, 2) As Integer
        '定义并初始化数组
        Dim array3() = {1, 2, 3, 4, 5}
        '锯齿数组,也就是数组的数组
        Dim array4 As Integer()() = New Integer(1)() {}
        array4(0) = New Integer() {1, 2}
        array4(1) = New Integer() {3, 4}
 

访问数组元素需要使用圆括号,而不是一般语言的方括号。

'初始化一维数组
        For i As Integer = 0 To 9
            array1(i) = i
        Next

        '初始化二维数组
        For i = 0 To 2
            For j = 0 To 2
                array2(i, j) = (i + 1)*(j + 1)
            Next
        Next
 

最后就是遍历数组了,可以使用For循环迭代下标,或者用Foreach循环直接遍历元素。

'显示数组
        For Each e In array1
            Console.Write(e)
        Next
        Console.WriteLine

        For i As Integer = 0 To 2
            For j = 0 To 2
                Console.Write(array2(i, j))
            Next
            Console.WriteLine
        Next

        For Each e In array3
            Console.Write(e)
        Next
        Console.WriteLine
        For i As Integer = 0 To 1
            For j = 0 To 1
                Console.Write(array4(i)(j))
            Next
            Console.WriteLine
        Next
 

函数

回头来看看前面的HelloWorld,其中就有一个Main函数,它是一个Sub函数,也就是没有返回值的函数。

Imports System

Module Program
    Sub Main(args As String())
        Console.WriteLine("Hello World!")
    End Sub
End Module

函数可以按值传参,也可以按引用传参,默认情况下是按值传参。

	Function GetParam(ByVal a As Integer, ByRef b As Integer)
        a = 10
        b = 10
        Console.WriteLine("Param changed")
    End Function
 

Function函数

Function函数就是有返回值的函数。在函数中,如果要返回值,可以有两种办法,第一种是使用Return语句,第二种是在函数体中向函数名赋值。

'函数返回值可以用Return语句
    Function Return1() As Integer
        Return 1
    End Function

    '也可以向函数名赋值
    Function Return2() As Integer
        Return2 = 2
    End Function

可变参数列表

可变参数列表使用ParamArray声明。

Function PrintIntegers(ParamArray integers As Integer())
        For Each i In integers
            Console.Write(i)
        Next
        Console.WriteLine
    End Function

面向对象编程

VB的类和C#的类非常相似,同样有字段、属性等概念。构造函数使用New声明,不需要返回值。析构函数使用Finalize声明,也不需要返回值。

	Class Contact
    ' 字段
    Private _name As String
    Private _tel As String

    '构造函数
    Public Sub New(name As String, tel As String)
        _name = name
        _tel = tel
    End Sub

    '析构函数
    Protected Overrides Sub Finalize()
    End Sub

    '属性
    Public Property Tel As String
        Get
            Return _tel
        End Get
        Set
            _tel = value
        End Set
    End Property

    Public Property Name As String
        Get
            Return _name
        End Get
        Set(value As String)
            _name = value
        End Set
    End Property

    '重写方法
    Public Overrides Function ToString() As String
        Return $"Contact(Name:{Name}, Tel:{Tel})"
    End Function
End Class

抽象类和接口

如果一个类的方法含有MustOverride修饰符,那么这个方法就是一个抽象方法。含有抽象方法的类就是抽象类,需要使用MustInherit关键字修饰。

MustInherit Class Shape
    MustOverride Function GetArea() As Double
End Class

Interface Color
    Function GetColor() As String
End Interface

继承

继承基类和实现接口的声明必须写在类实现的前面。如果一个方法重写了基类的版本,那么这个方法应该使用Overrides关键字修饰。如果不希望类被其他类继承,可以使用NotInheritable修饰,类似于Java的final关键字或者C#的sealed关键字。如果子类需要调用基类的方法,可以使用MyBase关键字代表基类。

Class Circle
    Inherits Shape
    Protected radius As Double

    Public Sub New(r As Double)
        radius = r
    End Sub

    Public Overrides Function GetArea() As Double
        Return Math.PI*radius*radius
    End Function
End Class

NotInheritable Class RedCircle
    Inherits Circle
    Implements Color

    Public Sub New(r As Double)
        MyBase.New(r)
    End Sub

    Public Function Color_GetColor() As String Implements Color.GetColor
        Return "Red"
    End Function
End Class
 

静态成员

静态成员和静态函数使用Shared关键字声明,对于每个类来说Shared成员只会存在一个。

Class MyMath
    Public Shared PI As Double = 3.1415926

    Public Shared Function GetPI As Double
        Return PI
    End Function
End Class
 

模块

Module类似于Class,不同之处在于Module不需要实例化,其中的函数可以直接调用,就像静态函数一样。

Module Program
    Sub Main(args As String())
        Console.WriteLine("Hello World!")
    End Sub
End Module

异常处理

VB的异常处理和C#的一样,都有Try、Catch、Finally部分。

Public Module ExceptionHandling
    Sub HandleException()
        Try
            Throw New ArithmeticException("除数不能为零")
        Catch ex As ArithmeticException
            Console.WriteLine($"捕获了数学计算异常:{ex.Message}")
        Catch ex As Exception
            Console.WriteLine($"捕获了异常:{ex.Message}")
        Finally

            Console.WriteLine("终结代码")
        End Try
    End Sub
End Module

作者:过了即是客

来源:CSDN

原文:https://blog.csdn.net/u011054333/article/details/78984118

《混乱军团》新手入门操作教程

内容摘要:刚刚开始玩《混乱军团》,那起码得先知道男女主角的基本操作吧,赶快来学习一下!

免费学日语在线学日语入门的网站有哪些?

随着旅游业的发展,不少中国人在自己的空余时间都想去国外旅游,而日本就是很多人想去旅游的国家之一。但是很多人不懂日语,更不知道怎

photoshop Cs4 从入门到精通 视频教学全套

复制下面链接,用迅雷或者电驴下载从入门到精通教程下载2.8GB

产品新人如何入门:工作技能(软实力)的培养

产品新人如何入门系列共分为三个部分:思维习惯的培养、工作技能的培养和逻辑思维的实战训练。上期讨论了思维习惯的培养,助于产品新

word2007提示''无法初始化Visual Basic环境"的解决

内容摘要:最近打开word总是提示:无法初始化Visual Basic环境该怎么办?虽然不影响使用,但是每次打开都弹出来也挺烦人的,该怎么解决这个

文章回顾

大家看了本文Visual Basic快速入门的精彩教程资源内容,是不是对Visual Basic快速入门了解更多,真心希望Visual Basic快速入门能帮助到你, 小编会一直给你带来更多教程资源文章信息。

版权声明:280f1fd46ad996da 发表于 2020-04-18 7:32:27。

本文由第三方用户分享仅代表作者观点,不代表本网站立场,秉承互联网开放分享的精神,目的在于传递更多信息,加强各行业互通交流,但对内容不作任何保证或承诺,请读者自行参考斟酌。网站发布的信息(包含但不限于版式、图片、字体、文章等素材)由第三方用户分享,版权归原作者所有,本站不承担任何相关的版权纠纷等相关责任。如您认为本篇内容侵犯了您的权益,请与我们联系,我们会及时处理。

人人翻致力于国内用户最爱翻的资源网站大全

转载请注明:
本文标题:Visual Basic快速入门
本文地址:https://www.renrenfan.com.cn/s21206.html