2013/11/25

C#.Net out和ref關鍵詞

ref:是以Call by Reference方式傳值,傳值之前必須初始化值,方法定義和使用方法都必須明確使用ref關鍵字


using System;

namespace ConsoleApplication8
{
    class Program
    {
        static int data = 0;

        static void Main(string[] args)
        {
            Console.WriteLine("Data:" + data);
            SetData(ref data);
            Console.WriteLine("Data:" + data);
            Console.ReadKey();
        }

        static void SetData(ref int data)
        {
            data = 10;
        }

    }
}




out:也是以Call by Reference方式傳值,傳值之前不需初始化值,方法定義和使用方法都必須明確使用out關鍵字

using System;

namespace ConsoleApplication8
{
    class Program
    {
        static int data;

        static void Main(string[] args)
        {
            Console.WriteLine("Data:" + data);
            SetData(out data);
            Console.WriteLine("Data:" + data);
            Console.ReadKey();
        }

        static void SetData(out int data)
        {
            data = 10;
        }

    }
}




參考資料:
http://msdn.microsoft.com/zh-tw/library/t3c3bfhx(v=vs.90).aspx
http://msdn.microsoft.com/zh-tw/library/14akc2c7(v=vs.90).aspx