HOW TO:建立不變更值的變數 (Visual Basic)

讓變數的值不變更,這個概念似乎有點奇怪。 不過,在某些情況中是無法使用常數的,此時使用具有固定值的變數便很有幫助。 在這類情況中,您可以使用 ReadOnly (Visual Basic) 關鍵字來定義成員變數 (Member Variable)。

在下列情況中,您無法使用 Const 陳述式 (Visual Basic) 來宣告和指派常數值:

  • Const 陳述式不接受您要使用的資料型別

  • 您無法在編譯時期確認應該使用哪一個值

  • 您無法在編譯時期計算常數值

建立不變更值的變數

  1. 在模組層級使用 Dim 陳述式 (Visual Basic) 來宣告成員變數 (Member Variable),並且包含 ReadOnly (Visual Basic) 關鍵字。

    Dim ReadOnly timeStarted
    

    您只能在成員變數上指定 ReadOnly。 這表示您必須在模組層級 (不在任何程序內) 定義變數。

  2. 如果您可以在編譯時期使用單一陳述式計算值,請在 Dim 陳述式中使用初始設定子句。 請在 As 子句之後加上等號 (=),等號之後再接著運算式。 請確定編譯器 (Compiler) 可以將這個運算式評估為常數值。

    Dim ReadOnly timeStarted As Date = Now
    

    您只能指派一次 ReadOnly 變數的值。 一旦這樣做,就再也沒有程式碼可以變更這個值。

    如果您在編譯時期無法確認應該使用哪一個值,或是無法在編譯時期使用單一陳述式來計算這個值,則仍可以在執行階段的建構函式 (Constructor) 中指派這個值。 若要這樣做,您必須在類別或結構層級宣告 ReadOnly 變數。 接著在該類別或結構的建構函式中,計算變數的固定值、將這個值指派給變數,然後再從建構函式傳回。

請參閱

參考

WriteOnly (Visual Basic)

Const 陳述式 (Visual Basic)