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