<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Visual Basic 數據類型 > 原文: [https://zetcode.com/lang/visualbasic/datatypes/](https://zetcode.com/lang/visualbasic/datatypes/) 在 Visual Basic 教程的這一部分中,我們將討論數據類型。 計算機程序可以處理數據。 用于各種數據類型的工具是現代計算機語言的基本組成部分。 根據維基百科的定義,`data type`是一組值,以及對這些值的允許操作。 Visual Basic 中的兩種基本數據類型是值類型和引用類型。 基本類型(字符串除外),枚舉和結構是值類型。 類,字符串,標準模塊,接口,數組和委托是引用類型。 每種類型都有一個默認值。 引用類型在堆上創建。 引用類型的生存期由 .NET 框架管理。 引用類型的默認值為空引用。 分配給引用類型的變量會創建引用的副本,而不是引用值的副本。 值類型在棧上創建。 生存期由變量的生存期決定。 分配給值類型的變量會創建要分配的值的副本。 值類型具有不同的默認值。 例如,布爾默認值為`False`,十進制為 0,字符串為空字符串`""`。 ## 布爾值 我們的世界建立了雙重性。 有天與地,水與火,陰與陽,男人與女人,愛與恨。 在 Visual Basic 中,`Boolean`數據類型是具有以下兩個值之一的原始數據類型:`True`或`False`。 這是基本的數據類型。 在計算機程序中非常常見。 快樂的父母正在等待孩子的出生。 他們為兩種可能性都選擇了名稱。 如果要成為男孩,他們選擇了約翰。 如果要成為女孩,他們會選擇杰西卡。 ```vb Option Strict On Module Example Dim num As Byte Dim male As Boolean Sub Main() Randomize() num = CType(Math.Round(Rnd()), Byte) If num = 0 Then male = True Else male = False End If If male = True Then Console.WriteLine("We will use name John") Else Console.WriteLine("We will use name Jessica") End If End Sub End Module ``` 該程序使用隨機數生成器來模擬我們的情況。 ```vb Dim num As Byte ``` `num`變量具有`Byte`數據類型。 這個很重要。 字節數據類型的整數值可以為`0..255`。 ```vb Randomize() num = CType(Math.Round(Rnd()), Byte) ``` 這兩行隨機取 0 或 1。`Rnd()`函數返回小于 1 但大于或等于 0 的隨機值。 我們使用`Round()`方法將數字四舍五入。 大于 0.5 的隨機值將四舍五入為 1。所有其他隨機值將四舍五入為零。使用`CType()`函數將`Double`數據類型轉換為`Byte`。 因此,將`num`變量分配為 0 或 1。`Randomize()`函數根據系統計時器初始化帶有種子的隨機數生成器。 ```vb If num = 0 Then male = True Else male = False End If ``` 根據`num`變量,布爾值`male`變量設置為`True`或`False`。 ```vb If male = True Then Console.WriteLine("We will use name John") Else Console.WriteLine("We will use name Jessica") End If ``` 如果將男性變量設置為`True`,則選擇名稱 John。 否則,我們選擇名稱 Jessica。 諸如`If/Else`語句之類的控件結構可使用布爾值。 ## 整數 整數是實數的子集。 它們寫時沒有小數或小數部分。 整數落入集合`Z = {..., -2, -1, 0, 1, 2, ......}`中整數是無限的。 在計算機語言中,整數是原始數據類型。 實際上,計算機只能使用整數值的子集,因為計算機的容量有限。 整數用于計算離散實體。 我們可以有 3、4、6 個人,但不能有 3.33 個人。 我們可以有 3.33 公斤。 | VB 別名 | .NET 類型 | 大小 | 范圍 | | --- | --- | --- | --- | | `SByte` | `System.SByte` | 1 字節 | -128 至 127 | | `Byte` | `System.Byte` | 1 字節 | 0 至 255 | | `Short` | `System.Int16` | 2 字節 | -32,768 至 32,767 | | `UShort` | `System.UInt16` | 2 字節 | 0 至 65,535 | | `Integer` | `System.Int32` | 4 字節 | -2,147,483,648 至 2,147,483,647 | | `UInteger` | `System.UInt32` | 4 字節 | 0 至 4,294,967,295 | | `Long` | `System.Int64` | 8 字節 | -9,223,372,036,854,775,808 至 9,223,372,036,854,775,807 | | `ULong` | `System.UInt64` | 8 字節 | 0 至 18,446,744,073,709,551,615 | 可以根據我們的需要使用這些整數類型。 沒有人(也許有些圣經人除外)的年齡可以超過 120、130 歲。 然后,我們可以在程序中將`Byte`類型用于年齡變量。 這樣可以節省一些內存。 ```vb Option Strict On Module Example Sub Main() Dim a As Byte = 254 Console.WriteLine(a) a += 1 Console.WriteLine(a) a += 1 Console.WriteLine(a) End Sub End Module ``` 在此示例中,我們嘗試分配一個超出數據類型范圍的值。 Mono 編譯器給出`System.OverflowException`。 Visual Basic 2008 Express 將不會編譯此示例。 在 Visual Basic 中,可以使用三種不同的表示法指定整數:十進制,十六進制和八進制。 八進制值以`&o`開頭,十六進制以`&h`開頭。 ```vb Option Strict On Module Example Sub Main() Dim num1 As Byte = 31 Dim num2 As Byte = &o31 Dim num3 As Byte = &h31 Console.WriteLine(num1) Console.WriteLine(num2) Console.WriteLine(num3) End Sub End Module ``` 我們使用三個符號將 31 分配給三個變量。 然后將它們打印到控制臺。 ```vb $ mono intnotations.exe 31 25 49 ``` 默認符號是十進制。 程序以十進制顯示這三個數字。 如果我們使用整數,那么我們將處理離散實體。 我們將使用整數來計算蘋果。 ```vb Option Strict On Module Example Sub Main() Rem number of baskets Dim baskets As Byte = 16 Rem number of apples in each basket Dim apples_in_basket As Byte = 24 Rem total number of apples Dim total As Short = baskets * apples_in_basket Console.WriteLine("There are total of {0} apples", total) End Sub End Module ``` 在我們的程序中,我們計算了蘋果的總量。 我們使用乘法運算。 ```vb $ mono apples.exe There are total of 384 apples ``` 程序的輸出。 ## 浮點數 浮點數表示計算中的實數。 實數測量連續的數量,例如重量,高度或速度。 在 Visual Basic 中,我們有三種重要的浮點類型:`Single`,`Double`和`Decimal`。 | VB 別名 | .NET 類型 | 大小 | 精度 | 范圍 | | --- | --- | --- | --- | --- | | `Single` | `System.Single` | 4 字節 | 7 位數 | `1.5 x 10^-45`至`3.4 x 10^38` | | `Double` | `System.Double` | 8 字節 | 15-16 位數 | `5.0 x 10^-324`至`1.7 x 10^308` | | `Decimal` | `System.Decimal` | 16 字節 | 28-29 位小數 | `1.0 x 10^-28`至`7.9 x 10^28` | 上表給出了浮點類型的特征。 我們可以使用各種語法來創建浮點值。 ```vb Option Strict On Module Example Sub Main() Dim n1 As Single = 1.234 Dim n2 As Single = 1.2e-3 Dim n3 As Single = 1 / 3 Console.WriteLine(n1) Console.WriteLine(n2) Console.WriteLine(n3) End Sub End Module ``` 我們有三種創建浮點值的方法。 第一種是使用小數點的“正常”方式。 第二種使用科學計數法。 最后一個是數字運算的結果。 ```vb $ mono fnotations.exe 1.234 0.0012 0.3333333 ``` 這是上面程序的輸出。 ```vb Option Strict On Module Example Sub Main() Dim n1 As Single = 1 / 3 Dim n2 As Double = 1 / 3 If n1 = n2 Then Console.WriteLine("Numbers are equal") Else Console.WriteLine("Numbers are not equal") End If End Sub End Module ``` `Single`和`Double`值以不同的精度存儲。 比較浮點值時應格外小心。 ```vb $ mono fequal.exe Numbers are not equal ``` 而且數字不相等。 假設一個短跑運動員跑了 1 個小時,跑了 9.87 秒。 他的公里/小時速度是多少? ```vb Option Strict On Module Example Sub Main() Dim distance As Single Dim time As Single Dim speed As Single Rem 100m is 0.1 km distance = 0.1 Rem 9.87s is 9.87/60*60 h time = 9.87 / 3600 speed = distance / time Console.WriteLine("The average speed of a sprinter is {0} km/h", speed) End Sub End Module ``` 在此示例中,必須使用浮點值。 ```vb speed = distance / time ``` 為了獲得速度,我們將距離除以時間。 ```vb $ mono sprinter.exe The average speed of a sprinter is 36.47416 km/h ``` 這是短跑運動員程序的輸出。 ## 枚舉 枚舉類型(也稱為枚舉或枚舉)是由一組命名值組成的數據類型。 可以將任何枚舉器分配為已聲明為具有枚舉類型的變量作為值。 枚舉使代碼更具可讀性。 ```vb Option Strict On Module Example Enum Days Monday Tuesday Wednesday Thursday Friday Saturday Sunday End Enum Sub Main() Dim day As Days = Days.Monday If day = Days.Monday Console.WriteLine("It is Monday") End If Console.WriteLine(day) End Sub End Module ``` 在我們的代碼示例中,我們為工作日創建一個枚舉。 ```vb Enum Days Monday Tuesday Wednesday Thursday Friday Saturday Sunday End Enum ``` 使用`Enum`關鍵字創建枚舉。 星期一,星期二...星期日實際上存儲數字`0..6`。 ```vb Dim day As Days = Days.Monday ``` 我們有一個名為`day`的變量,其類型為`Days`。 它被初始化為星期一。 ```vb If day = Days.Monday Console.WriteLine("It is Monday") End If ``` 與將日變量與某個數字進行比較相比,此代碼更具可讀性。 ```vb Console.WriteLine(day) ``` 此行將 0 打印到控制臺。 對于計算機,枚舉是數字。 我們會進一步進行枚舉。 ```vb Option Strict On Module Example Enum Seasons As Byte Spring = 1 Summer = 2 Autumn = 3 Winter = 4 End Enum Sub Main() Dim s1 As Seasons = Seasons.Spring Dim s2 As Seasons = Seasons.Autumn Console.WriteLine(s1) Console.WriteLine(s2) End Sub End Module ``` 季節可以很容易地用作枚舉。 我們可以為枚舉指定基礎類型,還可以為其提供確切的值。 ```vb Enum Seasons As Byte Spring = 1 Summer = 2 Autumn = 3 Winter = 4 End Enum ``` 使用`As`關鍵字,我們指定枚舉的基礎類型。 我們還給每個成員一個特定的號碼。 ```vb Console.WriteLine(s1) Console.WriteLine(s2) ``` 這兩行將 1、3 打印到控制臺。 ## 字符串和字符 `String`是代表計算機程序中文本數據的數據類型。 Visual Basic 中的字符串是 Unicode 字符序列。 `Char`是單個 Unicode 字符。 字符串用單引號或雙引號引起來。 由于字符串在每種編程語言中都非常重要,因此我們將為它們專門整整一章。 在這里,我們僅舉一個小例子。 ```vb Option Strict On Module Example Sub Main() Dim word As String = "ZetCode" Dim c As Char = CType(word.SubString(0, 1), Char) Console.WriteLine(c) End Sub End Module ``` 程序將`Z`字符打印到終端。 ```vb Dim word As String = "ZetCode" ``` 在這里,我們創建一個字符串變量,并為其分配`"ZetCode"`值。 ```vb Dim c As Char = CType(word.SubString(0, 1), Char) ``` `SubString()`方法用于從字符串返回子字符串。 方法返回類型為`String`。 我們要檢索并分配一個字符。 這就是為什么我們需要使用`CType`函數將`String`轉換為`Char`的原因。 字符隨后被打印到終端。 ## 數組 數組是處理元素集合的復雜數據類型。 每個元素都可以通過索引訪問。 數組的所有元素必須具有相同的數據類型。 我們將一整章專門介紹數組,這里僅顯示一個小例子。 ```vb Option Strict On Module Example Sub Main() Dim array(5) As Integer array(0) = 3 array(1) = 2 array(2) = 1 array(3) = 5 array(4) = 6 For i As Integer = 0 To array.Length-1 Console.WriteLine(i) Next End Sub End Module ``` 在此示例中,我們聲明一個數組,用數據填充它,然后將數組的內容打印到控制臺。 ```vb Dim array(5) As Integer ``` 我們聲明一個整數數組,該數組最多可以存儲 5 個整數。 ```vb array(0) = 3 array(1) = 2 array(2) = 1 array(3) = 5 array(4) = 6 ``` 在這里,我們為創建的數組分配值。 ```vb For i As Integer = 0 To array.Length-1 Console.WriteLine(i) Next ``` 我們遍歷數組并將數據打印到控制臺。 數組的`Length`屬性為我們提供了相關數組的長度。 ## 日期 `Date`是值類型,其中包含日期值,時間值或日期和時間值。 ```vb Option Strict On Module Example Sub Main() Dim today As Date today = Now() System.Console.WriteLine(today) System.Console.WriteLine(today.ToShortDateString()) System.Console.WriteLine(today.ToShortTimeString()) End Sub End Module ``` 我們以三種不同的格式顯示今天的日期。 日期&時間,日期和時間。 ```vb Dim today As Date ``` 我們聲明一個`Date`數據類型的變量。 ```vb today = Now() ``` 返回當前日期和時間,使用計算機的系統日期和時間。 ```vb System.Console.WriteLine(today) ``` 此行以完整格式打印日期。 ```vb System.Console.WriteLine(today.ToShortDateString()) System.Console.WriteLine(today.ToShortTimeString()) ``` `ToShortDateString()`返回短日期字符串格式,`ToShortTimeString()`返回短時間字符串格式。 ```vb $ mono date.exe 8/17/2010 1:19:05 PM 8/17/2010 1:19 PM ``` 示例的輸出。 ## 類型轉換 我們經常一次處理多種數據類型。 將一種數據類型轉換為另一種數據類型是編程中的常見工作。 類型轉換或類型轉換是指將一種數據類型的實體更改為另一種。 有兩種類型的轉換。 隱式和顯式。 隱式類型轉換,也稱為強制轉換,是編譯器自動進行的類型轉換。 ```vb Rem Option Strict On Module Example Sub Main() Dim val As Byte val = 0.54 Console.WriteLine(val) Console.WriteLine(12 + 12.5) Console.WriteLine("12" + 12) Console.WriteLine("12" & 12) End Sub End Module ``` 在此示例中,我們有一堆隱式轉換。 ```vb Rem Option Strict On ``` 當`Option Strict`語句為`On`時,某些隱式轉換是不可能的。 這就是為什么我們注釋這一行。 ```vb val = 0.54 ``` 浮點值分配給`Byte`數據類型的變量。 它是整數數據類型。 取整為 1; 失去一些精度。 這是縮小隱式轉換。 ```vb Console.WriteLine(12 + 12.5) ``` 我們添加兩個值。 一整數和一浮點值。 結果是浮點值。 這是擴展的隱式轉換。 ```vb Console.WriteLine("12" + 12) ``` 結果為 24。該字符串被隱式轉換為數字。 ```vb Console.WriteLine("12" & 12) ``` 結果為 1212。??將整數轉換為字符串,然后將兩個字符串相加。 接下來,我們將顯示 Visual Basic 中的一些顯式轉換。 | 函數 | 轉換為 | | --- | --- | | `CBool` | `Boolean` | | `CByte` | `Byte` | | `CChar` | `Unicode character` | | `CDate` | `Date` | | `CDb1` | `Double` | | `CDec` | `Decimal` | | `CInt` | `Integer` | | `CLng` | `Long` | | `CObj` | `Object` | | `CShort` | `Short` | | `CSng` | `Single` | | `CStr` | `String` | 我們有幾個函數可以執行顯式轉換。 ```vb Option Strict On Module Example Sub Main() Console.WriteLine(CByte(0.4)) Console.WriteLine(CByte(0.9)) Console.WriteLine(CShort(12 + 12.5)) Console.WriteLine(Val("1071 Fifth Avenue")) End Sub End Module ``` 在程序中,我們執行三種類型的轉換。 ```vb Console.WriteLine(CByte(0.4)) Console.WriteLine(CByte(0.9)) ``` 這兩行執行縮小的顯式轉換。 第一個數字四舍五入為 0,第二個數字四舍五入為 1。 ```vb Console.WriteLine(Val("1071 Fifth Avenue")) ``` `Val()`函數返回字符串中包含的數字。 在我們的情況下為 1071。 ```vb $ mono explicit.exe 0 1 24 1071 ``` 示例的輸出。 在 Visual Basic 教程的這一部分中,我們介紹了數據類型及其轉換。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看