屬性和索引器
阿新 • • 發佈:2020-10-09
屬性可以提供公共資料成員的便利,而又不會帶來不受保護、不受控制以及為經驗證訪問的物件資料的風險。這是通過“訪問器”來實現的;訪問器是為基礎資料成員賦值和檢索其值的特殊方法。使用set訪問器可以為資料成員賦值,使用get訪問器可以檢索資料成員的值。示例:
class Person
{
private string m_name;
public string Name
{
get
{return m_name;}
set
{ m_name = value;}
} private int m_Age ; public int Age
{
get
{return m_Age;} set
{m_Age = value;} } } 還有一種自動實現的屬性: public class Contact
{
public string Name { get; set; }
public string Address { get; set; }
public int ContactNumber { get; set; }
public int ID { get; private set; } // readonly
} 編譯器為每個自動實現的屬性建立了後備欄位,這些欄位無法直接從原始碼進行訪問。這個具體是什麼含義也不是太清楚,以後多加體會吧。 索引器允許類或結構的例項就像陣列一樣進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用引數。 class MyArrayList { //定義索引器,索引器類似於屬性,用this來進行定義
public object this[int i]
{ object[] obj = new object[] { };
get
{
return obj[i];
}
set
{
obj[i] = value; //value用來定義set索引器分配的值
} }
}
{
private string m_name;
public string Name
{
get
{return m_name;}
set
{ m_name = value;}
} private int m_Age ; public int Age
{
get
{return m_Age;} set
{m_Age = value;} } } 還有一種自動實現的屬性: public class Contact
{
public string Name { get; set; }
public string Address { get; set; }
public int ContactNumber { get; set; }
} 編譯器為每個自動實現的屬性建立了後備欄位,這些欄位無法直接從原始碼進行訪問。這個具體是什麼含義也不是太清楚,以後多加體會吧。 索引器允許類或結構的例項就像陣列一樣進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用引數。 class MyArrayList { //定義索引器,索引器類似於屬性,用this來進行定義
public object this[int i]
{ object[] obj = new object[] { };
get
{
return obj[i];
}
set
obj[i] = value; //value用來定義set索引器分配的值
} }
}