寫程式也一段時間,一直沒去搞懂一些東西
認真下定決心要去弄懂一些基礎知識
如有說錯也可以糾正<(-_-)>
在程式中我們使用變數,儲存資料,例如以下程式
//定義一個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屬姓的資料就會一模一樣