Vb.net常用基础语法

VB.net的基础语法
1.文件级别编程元素
1.1.Option 语句
Option Explicit On
用于在文件级强制对该文件中的所有变量进行显式声明
Option Explicit Off
可以不显示声明变量
Option Strict On
不允许进行范围缩小的隐式类型转换
Option Strict Off
不限制范围缩小的隐式类型转换
以上,通常在代码工程的属性中设定,而不是在每个代码文件中设定了。

2.Namespace 级编程元素
2.1.Class 语句
VB.Net提供面向对象的变成,类是面向对象的基本构件。
声明类的时候需要指定访问级别
Public 公开的,没有访问限制
Protected 受保护的,只能自己和子类可以访问
Friend 友方的,只能在该声明所在的程序集内访问
Private 私有的,只能在声明的上下文中使用
还有一些组合访问级别,不常用,这里不做说明。
类可以嵌套声明(使用较少)。
实现接口。
2.2.Structure 语句
不过多介绍,跟类差不多,从旧代码升级改造时用的场合比较多。
跟类的一个主要区别就是:结构是值类型,而类是引用类型
2.3.Module 语句
从VB升级过来时保留的概念,与类是同一级别概念。
不需要实例化,不能继承,无法实现接口,内部可以直接声明函数,自动就是静态的。2.4.Interface 语句
定义一组属性,Sub或者函数。
2.5.Enum 语句
枚举类型。

3.模块级别的编程元素
3.1.Function 语句
函数都带有返回值,返回值类型是声明中 AS 后面的部分。
ByVal 在函数中不能修改该修饰符修饰的参数。
ByRef 在函数中可以修改该修饰符修饰的参数。
3.2.Sub 语句
与Function相比,就是没有返回值。
3.3.Declare 语句
声明对外部文件中实现的过程的引用。
3.4.Property 语句
声明的属性,以及用于存储和检索属性的值的属性过程的名称。
只读属性,只提供Get处理。
只写属性,只提供Set处理。
3.5.Event 语句
通常是在自定义控件中使用Event语句。

4.过程级别的编程元素
4.1.Dim
变量声明
Dim param As New Hashtable
Dim I As Integer
Dim tmpDataBody As Object(,)
4.2.ReDim
重新定义变量,通常用于数组某些维度的大小
ReDim tmpDataBody(5, 6)
4.3.If…Then…Else
条件语句
If count = 0 Then
message = “There are no items.”
ElseIf count = 1 Then
message = “There is 1 item.”
Else
message = $”There are {count} items.”
End If
4.4.Select…Case
Select Case index
Case 0
.BillAdd1 = billAddList.Item(index)
Case 1
.BillAdd2 = billAddList.Item(index)
Case 2
.BillAdd3 = billAddList.Item(index)
Case Else
……
End Select
4.5.Do…Loop
Do
strSeq = Util.GetValueOfField(dtKzno.Rows(0).Item(“SEQ”))

    Try                 

        param.Clear()                   
        '取得したSEQ                    
        param.Add("Seq", strSeq)                    

        '' 使用可能な仮想口座番号のロック処理                    
        dtKznoLock = EBIVKZADM.LockKzno(param)                  

    Catch ex As Exception                   

        param.Clear()                   
        '行ロックエラー時のSEQ                   
        param.Add("ErrorSeq", strSeq)                   
        '仮想口座番号が偶数                  
        param.Add("Odevity", 1)                 

        '' 別トランザクションに行ロックされた場合、使用可能な偶数仮想口座番号のシーケンス番号を再取得する。                 
        dtKzno = EBIVKZADM.GetKznoOdevity(param, True)                  

        If dtKzno.Rows.Count = 0 OrElse String.IsNullOrEmpty(Util.GetValueOfField(dtKzno.Rows(0)(0))) Then                  
            Return False                    
        End If                  

        blnLockSuccess = True                   

        Continue Do                 

    End Try                 

    blnLockSuccess = False                  

Loop While blnLockSuccess                   

4.6.For Each…Next
For Each errOrale As String In OracleError.CONNECT_ERROR.Split(“,”)
If exp.Message.Contains(errOrale) Then
Me.mIsDBConnectException = True
Exit For
End If
Next
4.7.For…Next
For i = 0 To selSyaNegList.Count - 1
param.Clear()
’ 車載器ID(自)
param.Add(“Caridf”, selSyaNegList(i).Caridf)

    ' 車載器ID(至)                  
    param.Add("Caridt", selSyaNegList(i).Caridt)                    

    '' 首都高発行車載器ネガティブ情報からネガティブ情報を削除する                    
    'EGASYANEG.DeleteSyaNegInfo(param)                  
    ECN010TableDataAccess.EGASYANEG_DeleteSyaNegInfo(param)                 
Next                    

4.8.While…End While
While str.Length > 0
If str.Length < splitLength Then
resultList.Add(str.Substring(0, str.Length))
str = str.Remove(0, str.Length)
Else
resultList.Add(str.Substring(0, splitLength))
str = str.Remove(0, splitLength)
End If
End While
4.9.With…End With
With dataModel
‘初期化
.ReNaOne = String.Empty
.ReNaTwo = String.Empty
.ReName = String.Empty

    Dim billNameList As List(Of String) = ECP120Business.GetSplitList(billName)                 
    If billNameList.Count > 0 Then                  
        For index As Integer = 0 To billNameList.Count - 1                  
            Select Case index                   
                Case 0                  
                    .ReNaOne = billNameList.Item(index)                 
                Case 1                  
                    .ReNaTwo = billNameList.Item(index)                 
            End Select                  
        Next                    
        .ReName = .ReNaOne & ECP080Frm.NEW_LINE_CODE & .ReNaTwo                 
    End If                  
End With                    

4.10.Try…Catch…Finally
Try
” データベース接続の異常以外の場合に
If Not Me.mIsDBConnectException Then

        ' '' ログイン情報を削除する。                   
        Call Me.DeleteLoginInfo()                   

        If Me.mIsException Then                 

            '' ログアウト失敗の認証ログを出力する。                   
            Logger.Authentication("1", ResultStatus.Failure)                    

        Else                    

            '' ログアウト失敗の認証ログを出力する。                   
            If Not "ECA010Frm".Equals(GlobalInfo.ActiveForm.Name) Then                  
                Logger.Authentication("1", ResultStatus.Success)                    
            End If                  
        End If                  
    End If                  

Catch ex As Exception                   
    MsgBox(ex.Message & vbCrLf & "システムを終了します。", MsgBoxStyle.Critical, "エラー")                    
Finally                 
    '' リソースを解放する。                   
    Call Me.DisposeResource()                   
End Try                 

4.11.Using
根据需要获取该代码块控制的系统资源
Using sw As StreamWriter = New StreamWriter(fileName, True, fileEncoding)

    ' '' 付加情報を出力する。                 
    If Not IsNothing(fileModel.AddInfo) Then                    
        For Each addInfo As String In fileModel.AddInfo                 
            sw.WriteLine(addInfo)                   
        Next                    
    End If                  

    ' '' ヘッダーを出力する。                 
    If hasHeader Then                   
        sw.WriteLine(fileModel.Header)                  
    End If                  

    ' '' データボディを出力する。                   
    Me.CSVFileFromArray(fileModel.DataBody, sw, blnAddDoubleQuotes)                 

    ' ''正常終了メッセージを表示する。                 
    If displayMsg Then                  
        Message.Show("I1001", "CSV")                    
    End If                  

    Return True                 
End Using                   

其他
1常用数据类型:
2My对象
3#region指令
学习网站
https://www.w3cschool.cn/vb_net/
https://docs.microsoft.com/zh-cn/dotnet/visual-basic/

猜你喜欢

转载自blog.csdn.net/weixin_41415996/article/details/81411472