一般面向物件程式語言都要求成員變數不能直接暴露給外部訪問,如下:
public class A
{
public int Age; //這是不好的,待會有程式設計師可能把-1賦給Age
}
為了防止亂賦值,C#設計了一個屬性機制,要求把成員變數設為私有,在透過屬性來控制成員變數的讀寫,如下:
public class B
private int age; //私有成員變數
public int Age //age的屬性
get{ return age; } //讀取器
set{ //寫入器
if(value>0)
age = value; //value是準備寫入的值
這樣Age就像保安一樣,擋在age的前面。訪問age的時候需要透過Age許可,如下:
B b = new B();
b.Age = -1; //這是不行的,-1被帶入value,value
b.Age = 10; //這是可行的
一般面向物件程式語言都要求成員變數不能直接暴露給外部訪問,如下:
public class A
{
public int Age; //這是不好的,待會有程式設計師可能把-1賦給Age
}
為了防止亂賦值,C#設計了一個屬性機制,要求把成員變數設為私有,在透過屬性來控制成員變數的讀寫,如下:
public class B
{
private int age; //私有成員變數
public int Age //age的屬性
{
get{ return age; } //讀取器
set{ //寫入器
if(value>0)
age = value; //value是準備寫入的值
}
}
}
這樣Age就像保安一樣,擋在age的前面。訪問age的時候需要透過Age許可,如下:
B b = new B();
b.Age = -1; //這是不行的,-1被帶入value,value
b.Age = 10; //這是可行的