文章出處

  讓我們再來看有關值傳遞和引用傳遞的例子:

            //值傳遞,傳遞的是這個值的本身
            int n = 10;
            int m = n;
            m = 40;
            Console.WriteLine(n);   // 10
            Console.WriteLine(m);   // 40
            //引用傳遞,傳遞的是對象的引用
            //p1 p2 共同指向了同一個堆上的地址
            //通過p2改變age,p1所指向的age也會跟著改變的
            Person p1 = new Person();
            p1.age = 20;
            Person p2 = p1;
            p2.age = 25;
            Console.WriteLine(p1.age);  //  25
            Console.WriteLine(p2.age);  //  25
            //字符串雖然屬于引用類型,但由于它的不可變性
            //在改變s2所指向的內存后,s1所指向的內存不會跟著改變
            string s1 = "dssd";
            string s2 = s1;
            s2 = "rere";
            Console.WriteLine(s1); //   dssd
            Console.WriteLine(s2); //   rere
        
       字符串可以視為一個只讀的字符數組,所以不能像int類型數組那樣,通過下標來修改數組中元素的值
            //在參數前面加上ref修飾,傳遞的是參數的地址,值傳遞變成了引用傳遞
            int number = 10;
            Fun(ref number);
            Console.WriteLine(number);  //  20

        public static void Fun(ref int n) 
        {
            n += 10;
        }

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()