可修改引數和不可修改引數之間的差異
更新:2007 年 11 月
呼叫程序時,一般會將一或多個引數傳遞給它。每個引數都會對應到基礎程式設計項目,基礎項目和引數本身都是可修改或不可修改的。
可修改和不可修改的項目
程式設計項目可以是「可修改的項目」(可變更其值) 或「不可修改的項目」(建立後即有固定值)。
下表列出了可修改和不可修改的程式設計項目。
可修改的項目 |
不可修改的項目 |
---|---|
區域變數 (在程序內宣告),包含物件變數,但不包含唯讀項目 |
唯讀變數、欄位和屬性 |
欄位 (模組、類別和結構的成員變數),但不包含唯讀項目 |
常數和常值 |
屬性,但不包含唯讀項目 |
列舉型別成員 |
陣列元素 |
運算式 (即使他們的項目是可修改的) |
可修改和不可修改的引數
「可修改的引數」是具有可修改之基礎項目的引數。呼叫程式碼可隨時儲存新值,而且,如果是以 ByRef 方式傳遞引數,則程序中的程式碼也可以修改呼叫程式碼中的基礎項目。
「不可修改的引數」具有不可修改的基礎項目,或以 ByVal 方式傳遞。程序無法修改呼叫程式碼中的基礎項目,即使它是可修改的項目也一樣。如果它是不可修改的項目,則呼叫程式碼本身便無法修改它。
呼叫的程序可以修正不可修改引數的本機複本,但是這樣的修正並不會影響呼叫程式碼中的基礎項目。