1. 程式人生 > >C#值類型和引用類型

C#值類型和引用類型

ons 獨立 賦值 之間 創建 1=1 簡單 中心 lin

值類型和引用類型通俗來講:就是存儲的地方不一樣,

值類型 int double bool char struct(結構) enum(枚舉) 存放在托管堆上邊,

引用類型:string object class 存放到棧上。

簡單來說 比如 int a=1; int b=a;那麽為b賦值的時候,就是把a的值復制一份,在內存中心創建一塊區域保存b的值。a和b的存儲是獨立的

class a=new class(); class b=a;那麽為b賦值的時候,僅僅把a的引用地址復制給b。這樣a和b就指向內存中的同一個地址。a和b是關聯的。

值類型是對象與對象之間的相互賦值

引用類型 賦的是引用地址 沒有值的傳遞

class Program
{

public class Staff
{
//引用類型
public string FirstName { get; set; }
public string LastName { get; set; }
public int Salary { get; set; }
}

public struct Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Salary { get; set; }
}

}

static void Main(string[] args)
{

Staff s1 = new Staff { FirstName = "123" };
Staff s2 = s1; //只賦值地址 不賦值
s2.FirstName = "abc";
Employee e1 = new Employee { FirstName = "123" };//e1="123"
Employee e2 = e1;
e2.FirstName = "abc";
Console.WriteLine("s1=" + s1.FirstName + ", e1=" + e1.FirstName);

}

最後輸出s1=abc e1=123

C#值類型和引用類型