值傳遞和引用傳遞,ref的作用,序列化和反序列化

2021-07-23 10:13:13 字數 1247 閱讀 9221

值型別:int double char decimal bool enum struct --->儲存在棧中

(值型別在複製的時候傳遞的是這個值得本身)

字串string 有不可變性,每次變化都在記憶體中開闢乙個新的空間。

static void main(string args)

引用型別:string 陣列 自定義類 集合

object

介面--->

儲存在堆中

(引用型別在複製的時候,傳遞的是對這個物件的引用)

ref:能夠把乙個變數以引數的形式帶到乙個方法中進行改變,再將改變的值返回

class program

public static void test(ref int number)

}方法中本來是沒有返回值的,加了ref後number和n變成同一塊記憶體空間(值傳遞改變為引用傳遞)

序列化:就是將物件轉換為二進位制

反序列化:就是將二進位制轉換為物件

作用:傳輸資料。

序列化步驟

1)、將這個類標記為可以被序列化的。在類的前面加上   [serializable] --->指示乙個類可以被序列化

例:將乙個物件傳遞給對方的電腦(序列化) 對方電腦讀取傳遞過來的物件(反序列化)

第一步:寫乙個類 在類的前面加上 [serializable]  表示可以被序列化

//先寫乙個類,在類的前面加上乙個 [serializable]

[serializable]

public class person

set

}private int _age;

public int age

set

}private char _gender;

public char gender

set }}

第二步:建立物件,序列化物件

static void main(string args)

console.writeline("ok了");

console.readkey();

}第三步:將123.txt 中的內容進行反序列化,還原物件 p

static void main(string args)

console.writeline(p.age);

console.writeline(p.name);

console.writeline(p.gender);

console.readkey();

}

值傳遞和引用傳遞

幾乎每種語言都有值傳遞和引用傳遞.下面是我的一些曲解,只講現象,不涉及到任何的原理,主要是鬧著玩的.a 新交了個女朋友b.有一天他女朋友b看見a在吃冰激凌,b想吃,但是a是個 座有點小潔癖,不想讓b吃,於是給b買了個新的冰激凌說你吃這個吧,別碰我嘴裡這個.這就是值傳遞.a和b的值沒有任何關係,他們一...

值傳遞和引用傳遞

1.什麼是值傳遞和引用傳遞 值傳遞 方法呼叫時,實際引數的值copy乙份傳遞給形式引數,此時,有兩個相等的數值分別儲存於不同的記憶體位址上,因此,後面的方法中都是對形參位址上的數值進行修改。引用傳遞 方法呼叫時,實際引數的值 也就是位址 copy乙份傳遞給形式引數,此時,形參和實參的引用都指向同一儲...

值傳遞和引用傳遞

定義 通過建立乙個實際引數的副本,再傳遞給方法的形式引數,在main自身並不會被使用。這個在我們第一次使用編寫交換數的方法時,基本都會遇見,當我呼叫a,b兩個變數時,通過交換方法交換他們的位置,但是沒用,這就是值傳遞,乙個坑 public class switchnum switchnum a,b ...