c# ref out 區別

C#語言中,參數的傳遞一共有兩種方法,值傳遞和引用傳遞。
而ref與out這兩種方式都屬於引用傳遞,只是他們的用法稍有不同。
 
ref的特點是有進有出,即在傳遞參數之前就已經對它進行賦值,在傳入方法體時,是將該數的地址傳了進來,如果對其進行相應的賦值操作,直接改的是地址裏的值,所以,當該方法執行完,該數的值也就跟着改變了。
代碼如下:
        static void Main(string[] args)
        {
            int i = 10;
            FF( ref i);
            Console.WriteLine(i);
        }
        static void FF(ref int i)
        {
            i = i + 1;
        }
而out與ref的唯一區別是,在方法接收參數後,對它進行初始化(如果沒有初始化,將會報錯的),其餘的用法都和ref一樣。
代碼如下:
        static void Main(string[] args)
        {
            int i ;
            FF( out i);
            Console.WriteLine(i);
        }
        static void FF(out int i)
        {
            i=10; //如果沒有這個賦值,系統將會報錯的
            i = i + 1;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章