在 C# 中
本主題包括下列章節
傳遞值類型參數
傳遞引用類型參數
它還包括以下示例
傳遞值類型參數
值類型變量直接包含其數據
示例 通過值傳遞值類型
下面的示例演示通過值傳遞值類型參數
// PassingParams
using System;
class PassingValByVal
static void SquareIt(int x)
// The parameter x is passed by value
// Changes to x will not affect the original value of myInt
x *= x;
Console
}
public static void Main()
int myInt =
Console
myInt);
SquareIt(myInt); // Passing myInt by value
Console
myInt);
}
}
輸出
The value before calling the method:
The value inside the method:
The value after calling the method:
代碼討論
變量 myInt 為值類型
示例 通過引用傳遞值類型
下面的示例除使用 ref 關鍵字傳遞參數以外
// PassingParams
using System;
class PassingValByRef
static void SquareIt(ref int x)
// The parameter x is passed by reference
// Changes to x will affect the original value of myInt
x *= x;
Console
}
public static void Main()
int myInt =
Console
myInt);
SquareIt(ref myInt); // Passing myInt by reference
Console
myInt);
}
}
輸出
The value before calling the method:
The value inside the method:
The value after calling the method:
代碼討論
本示例中
示例 交換值類型
更改所傳遞參數的值的常見示例是 Swap 方法
static void SwapByRef(ref int x
int temp = x;
x = y;
y = temp;
}
調用該方法時
SwapByRef (ref i
傳遞引用類型參數
引用類型的變量不直接包含其數據
示例 通過值傳遞引用類型
下面的示例演示通過值向 Change 方法傳遞引用類型的參數 myArray
// PassingParams
// Passing an array to a method without the ref keyword
// Compare the results to those of Example
using System;
class PassingRefByVal
static void Change(int[] arr)
arr[
arr = new int[
Console
}
public static void Main()
int[] myArray =
Console
Change(myArray);
Console
}
}
輸出
Inside Main
Inside the method
Inside Main
代碼討論
在上個示例中
示例 通過引用傳遞引用類型
本示例除在方法頭和調用中使用 ref 關鍵字以外
// PassingParams
// Passing an array to a method with the ref keyword
// Compare the results to those of Example
using System;
class PassingRefByRef
static void Change(ref int[] arr)
// Both of the following changes will affect the original variables:
arr[
arr = new int[
Console
}
public static void Main()
int[] myArray =
Console
Change(ref myArray);
Console
}
}
輸出
Inside Main
Inside the method
Inside Main
代碼討論
方法內發生的所有更改都影響 Main 中的原始數組
示例 交換兩個字符串
交換字符串是通過引用傳遞引用類型參數的很好的示例
// PassingParams
using System;
class SwappinStrings
static void SwapStrings(ref string s
// The string parameter x is passed by reference
// Any changes on parameters will affect the original variables
string temp = s
s
s
Console
}
public static void Main()
string str
string str
Console
str
SwapStrings(ref str
Console
str
}
}
輸出
Inside Main
Inside the method: Smith
Inside Main
代碼討論
本示例中
From:http://tw.wingwit.com/Article/program/net/201311/12635.html