pass value type by value (값형식을 값에 의한 전달)
{
Console.WriteLine(“The value inside the method: {0}”, x);
{
Console.WriteLine(“i={0}”, i);
Square1(i);
Console.WriteLine(“i={0}”, i);
//The value inside the method: 25
//i=5
pass reference type by value (참조형식을 값에 의한 전달)
-copy of reference가 전달
{
Console.WriteLine(“arr=” + string.Join(“,”, arr)); // .NET4만 동작
Console.WriteLine(“arr=” + string.Join(“,”, arr)); // .NET4
{
Console.WriteLine(“myArray=” + string.Join(“,”, myArray)); // .NET4
ChangeArray1(myArray);
Console.WriteLine(“myArray=” + string.Join(“,”, myArray)); // .NET4
//myArray=888, 4, 5
pass value type by reference (값형식을 참조에 의한 전달)
–ref 키워드 사용
{
Console.WriteLine(“The value inside the method: {0}”, x);
static void Main()
{
Console.WriteLine(“i={0}”, i);
Square2(ref i);
Console.WriteLine(“i={0}”, i);
//The value inside the method: 25
//i=25
pass reference type by reference (참조형식을 참조에 의한 전달)
–ref 키워드 사용
{
arr = new int[5] {-3, -1, -2, -3, -4}; // 원본 배열이 다시 변경
static void Main()
{
Console.WriteLine(“myArray=” + string.Join(“,”, myArray)); // .NET4
Console.WriteLine(“myArray=” + string.Join(“,”, myArray)); // .NET4
// arr=888, 4, 5
// myArray=-3, -1, -2, -3, -4
pass value type by output (값형식을 output에 의한 전달)
–out 키워드 사용
{
Console.WriteLine(“The value inside the method: {0}”, result);
static void Main()
{
Console.WriteLine(“i={0}”, i);
int result;
Square3(i, out result);
Console.WriteLine(“result={0}”, result);
//The value inside the method: 25
//result=25
pass reference type by output (참조형식을 output에 의한 전달)
–out 키워드 사용
{
arr = new int[5] {-3, -1, -2, -3, -4}; // 원본 배열이 변경
Console.WriteLine(“arr=” + string.Join(“,”, arr)); // .NET4
static void Main()
{
Console.WriteLine(“myArray=” + string.Join(“,”, myArray)); // .NET4
ChangeArray3(out myArray);
Console.WriteLine(“myArray=” + string.Join(“,”, myArray)); // .NET4
//arr=-3, -1, -2, -3, -4
//myArray=-3, -1, -2, -3, -4
