C#型別

  • 53
  • 0
  • 2020-12-27

寫程式也一段時間,一直沒去搞懂一些東西

認真下定決心要去弄懂一些基礎知識

如有說錯也可以糾正<(-_-)>

在程式中我們使用變數,儲存資料,例如以下程式

//定義一個age變數,儲存3這個資料
int age=3
//定義一個name變數,儲存Ken這個資料
string name="Ken"

上面示範的是一個簡單的定義,變數的資料類型別,可以是類別(Class)、結構(Struct)、介面(Interface),等等...

而這些類型,可以分成兩大類

1.實值型別(Value Type)

所謂的實值型別,代表一個變數都儲存一份自己的資料,彼此不受影響,例如以下程式

//定義一個age1變數儲存3這個資料
int age1=3;
//定義一個age2變數,把age1賦予給age2變數
int age2=age1
//把4賦予給age2這個變數
age2=4;
//輸入3
Console.WriteLie(age1)
//輸出4
Console.WriteLie(age2)

也就是說age1和age2自己都有一份資料,彼此不受影響

2.參考型別(Referenct Type)

所謂的參考型別,代表變數儲存的不是資料本身,儲存的是參考該資料位置,例如以下程式

//定義一個People類別,擁有Name屬性
public class People
{
   public string Name{get;set;}
}

//定義一個man1變數,屬性是Ken
People man1 = new People { Name = "Ken" };
//定義一個man2變數,把man1賦予給man2變數
People man2 = man1;
//把man2的Name屬性改成Leo
man2.Name = "Leo";
//輸出Leo
Console.WriteLine(man1.Name);
//輸出Leo
Console.WriteLine(man2.Name);

定義man1變數,他會指向到Ken這個資料

把man1賦予給man2,man2參考資料位置,指向到Ken這個資料

這個時候man1和man2都指向到Ken這個資料

這時候把man2改成Leo,也因為兩個變數都是儲存資料參考位置,所以他們的Name屬姓的資料就會一模一樣