C 梳理 屬性Property

2021-08-08 12:07:01 字數 2073 閱讀 6369

屬性(property)是類(class)、結構(structure)和介面(inte***ce)的命名(named)成員。類或結構中的成員變數或方法稱為域(field)。屬性(property)是域(field)的擴充套件,且可使用相同的語法來訪問。它們使用訪問器(accessors)讓私有域的值可被讀寫或操作。

屬性(property)不會確定儲存位置。相反,它們具有可讀寫或計算它們值的訪問器(accessors)

例如,有乙個名為 student 的類,帶有 age、name 和 code 的私有域。我們不能在類的範圍以外直接訪問這些域,但是我們可以擁有訪問這些私有域的屬性。

屬性(property)的訪問器(accessor)包含有助於獲取(讀取或計算)或設定(寫入)屬性的可執行語句。訪問器(accessor)宣告可包含乙個 get 訪問器、乙個 set 訪問器,或者同時包含二者。例如:

// 宣告型別為 string 的 code 屬性

public string code

set}

// 宣告型別為 string 的 name 屬性

public string name

set}

// 宣告型別為 int 的 age 屬性

public int age

set}

下面的例項演示了屬性(property)的用法:

using system;

namespace tutorialspoint

set}

// 宣告型別為 string 的 name 屬性

public string name

set}

// 宣告型別為 int 的 age 屬性

public int age

set}

public override string tostring()

}class exampledemo

", s);

// 增加年齡

s.age += 1;

console.writeline("student info: ", s);

console.readkey();}}

}

當上面的**被編譯和執行時,它會產生下列結果:

student info: code = 001, name = zara, age = 9

student info: code = 001, name = zara, age = 10

抽象類可擁有抽象屬性,這些屬性應在派生類中被實現。下面的程式說明了這點:

using system;

namespace tutorialspoint

public abstract int age

}class student : person

set}

// 宣告型別為 string 的 name 屬性

public override string name

set}

// 宣告型別為 int 的 age 屬性

public override int age

set}

public override string tostring()

}class exampledemo

", s);

// 增加年齡

s.age += 1;

console.writeline("student info:- ", s);

console.readkey();}}

}

當上面的**被編譯和執行時,它會產生下列結果:

student info: code = 001, name = zara, age = 9

student info: code = 001, name = zara, age = 10

C 中使用屬性 property

在c 中也可以使用像c 中的屬性。在某些特定的環境我們可以使用這一方法,雖然在效率上會比直接訪問要來得慢。但是這點效率基本可以忽略的。大致如下 我們使用 declspec property get put 來定義某個成員的get和set方法。我們在呼叫這個成員的時候,便會自動呼叫set或get方法,...

C 中使用屬性 property

在c 中也可以使用像c 中的屬性。在某些特定的環境我們可以使用這一方法,雖然在效率上會比直接訪問要來得慢。但是這點效率基本可以忽略的。大致如下 include using namespace std class test void set int value declspec property ge...

property屬性引數

1.讀寫屬性 預設是readwrite,會生成getter和setter方法 如果是readonly表示只會生成getter方法 2.setter處理 預設是assign 賦值 因此基本資料型別不需要加這個引數。因為在setter方法裡,我們經常要將乙個物件賦值給類的成員屬性,這個時候根據記憶體管理...