官术网_书友最值得收藏!

2.7 技術解惑

2.7.1 公用變量與局部變量的比較

在不同的范圍內也可以有同名變量。例如,可以有名為Temp的公用變量,然后在過程中聲明名為Temp的局部變量。在過程內通過引用名字Temp來訪問局部變量,而在過程外則通過引用名字Temp來訪問公用變量。通過用模塊名限定模塊級變量就可在過程內訪問這樣的變量。

    Public Temp As Integer
    Sub Test ()
      Dim Temp As Integer
      Temp=2                   'Temp的值為 2
        MsgBox Form1.Temp          'Form1.Temp的值為 1
        End Sub
    Private Sub Form_Load ()
      Temp=1                   ' 將Form1.Temp的值設置成 1
      End Sub
        Private Sub Command1_Click ()
          Test
      End Sub

一般說來,當變量名稱相同而范圍不同時,局限性大的變量總會用“陰影”遮住局限性不太大的變量(即優先訪問局限性大的變量)。所以,如果還有名為Temp的過程級變量,則它會用“陰影”遮住模塊內部的公用變量Temp。

2.7.2 體會靜態變量

除了范圍之外,變量還有存活期,在這一期間變量能夠保持它們的值。在應用程序的存活期內一直保持模塊級變量和公用變量的值。但是,對于Dim聲明的局部變量以及聲明局部變量的過程,僅當過程在執行時這些局部變量才存在。通常,當一個過程執行完畢,它的局部變量的值就已經不存在,而且變量所占據的內存也被釋放。當下一次執行該過程時,它的所有局部變量將重新初始化。

但是可以將局部變量定義成靜態的,從而保留變量的值。在過程內部用Static關鍵字聲明一個或多個變量,其用法和Dim語句完全一樣。

    Static Depth

例如,下面的函數將存儲在靜態變量Accumulate中的以前的運營總值與一個新值相加,以計算運營總值。

    Function RunningTotal (num)
        Static ApplesSold
        ApplesSold = ApplesSold + num
        RunningTotal = ApplesSold
    End Function

如果用Dim而不用Static聲明ApplesSold,則以前的累計值不會通過調用函數保留下來,函數只會簡單地返回調用它的那個相同值。

2.7.3 標識符本身的原則

Visual Basic 6.0標識符的含義比較容易理解,但是在具體使用時必須遵循它本身的原則。具體說明如下所示。

? 只能由字母、數字和下劃線組成。

? 第一個字符必須是字母。

? 標識符的長度不能超過255個字符。

? 自定義的標識符不能和程序內的運算符、函數和過程名的關鍵字相同,也不能和系統對象的方法和屬性同名。

? Visual Basic 6.0標識符不區分大小寫。

2.7.4 Visual Basic表達式的特點

Visual Basic表達式有如下5個特點。

? 乘號不能省略。

? 括號必須成對出現,均使用圓括號,可以嵌套,但必須配對。

? 表達式從左到右在同一基準上書寫,無高低、大小之分。

? 操作數的數據類型應該符合要求,不同的數據應該轉換成同一類型。在算術運算中,如果操作數的數據精度不同,VB規定運算結果采用精度較高的數據類型。

? 同一表達式中,不同運算符的優先級是:算術運算符 > 字符運算符 > 關系運算符 >邏輯運算符。

主站蜘蛛池模板: 长武县| 加查县| 林甸县| 卢氏县| 彭山县| 肇源县| 黄大仙区| 遵义市| 海宁市| 夹江县| 曲阜市| 巴林左旗| 西乌| 赫章县| 溧阳市| 衡南县| 新干县| 临洮县| 建宁县| 清涧县| 梁山县| 普格县| 左云县| 绥芬河市| 河源市| 泗阳县| 龙州县| 阿鲁科尔沁旗| 尼木县| 新晃| 杭锦旗| 合作市| 红桥区| 广平县| 金平| 安义县| 启东市| 金平| 雅安市| 舟山市| 抚远县|