首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 方法參數四大類型:值/參考/輸出/參數陣列、Swap 範例驗證與 ref 別名效應

     編輯:關於C語言

C# 方法參數四種類型,以修飾詞區分:

類型修飾詞記憶體行為初始化要求
值參數無複製值到新位置呼叫端必須已指派
參考參數ref傳遞位址(別名)呼叫端必須已指派
輸出參數out傳遞位址(別名)方法內必須指派
參數陣列params封裝為陣列呼叫端可給 0~N 引數

值參數:安全但無法修改原值


static void Swap(int x, int y) { int t=x; x=y; y=t; }
int i=1, j=2; Swap(i,j); // i=1, j=2 不變

參考參數:真正交換


static void Swap(ref int x, ref int y) { int t=x; x=y; y=t; }
int i=1, j=2; Swap(ref i, ref j); // i=2, j=1 成功

ref 別名效應


class A {
    string s;
    void F(ref string a, ref string b) { s="One"; a="Two"; b="Three"; }
    void G() { F(ref s, ref s); } // s, a, b 三個參考指向同一記憶體
}

呼叫 G() 時,s、a、b 成為同一記憶體位置的別名,最後值為 "Three"。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved