C#中的ref關(guān)鍵字
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
值參數(shù)(Value Parameters)1、傳遞的是參數(shù)的值(數(shù)據(jù)的副本)而不是原始數(shù)據(jù)本身。 2、函數(shù)內(nèi)部對值參數(shù)的修改不會影響到原始數(shù)據(jù)。 3、通常用于傳遞基本數(shù)據(jù)類型(如整數(shù)、浮點(diǎn)數(shù)、布爾值)或不可變對象(如字符串、元組)。 4、值參數(shù)的傳遞是一種傳值調(diào)用(Call by Value)。 示例代碼
運(yùn)行結(jié)果,如下圖所示: 把val作為一個參數(shù),調(diào)用ShowDouble()并不影響Main()中val的值 那么如何改變val的值呢? 可以使用一個含返回值的函數(shù) 代碼如下所示:
運(yùn)行結(jié)果,如下所示: 成功改變了參數(shù)的值,但是這種方式并不直觀,且不能改變用作參數(shù)的多個變量的值(因?yàn)楹瘮?shù)只有一個返回值),這時就可以通過引用來傳遞參數(shù)。 引用參數(shù)(Reference Parameters)1、傳遞的是參數(shù)的引用(內(nèi)存地址),直接操作原始數(shù)據(jù)。 2、函數(shù)內(nèi)部對引用參數(shù)的修改會影響到原始數(shù)據(jù)。 3、通常用于傳遞可變對象(如列表、字典)或?qū)ο髮?shí)例,以便在函數(shù)內(nèi)部進(jìn)行修改并在函數(shù)外部保持修改后的狀態(tài)。 4、引用參數(shù)的傳遞是一種傳址調(diào)用(Call by Reference)。 C#中使用ref關(guān)鍵字指定參數(shù),代碼如下所示:
運(yùn)行結(jié)果,如下圖所示: 要注意,不僅在函數(shù)的聲明中要使用ref指定參數(shù),如代碼 static void ShowDouble(ref int val)所示,在函數(shù)的調(diào)用中,也要再次指定它,如代碼 ShowDouble(ref val)所示。 使用ref的限制1、函數(shù)可能會改變引用參數(shù)的值,所以必須在函數(shù)調(diào)用中要使用“非常量”變量 const int val = 6; 這種寫法,編譯器會報(bào)錯,如下圖所示: 2、必須使用初始化過的變量。C#不允許假定ref參數(shù)在使用它的函數(shù)中初始化。 int val; 這種寫法,編譯器也會報(bào)錯,如下圖所示: 轉(zhuǎn)自https://www.cnblogs.com/mingupupu/p/17864054.html 該文章在 2025/2/18 11:37:03 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |