__property
注意事項 |
---|
本主題只適用於 Managed Extensions for C++ 第 1 版。這個語法只可用於維護第 1 版的程式碼。如需在新語法中使用對等功能的詳細資訊,請參閱property (C++ 元件擴充功能)。 |
宣告 Managed 類別的純量或索引屬性。
__property function-declarator
備註
__property 關鍵字引入了屬性宣告,而且可以出現在類別、介面或實值類型中。 屬性可以有 getter 函式 (唯讀)、setter 函式 (唯寫),或兩者皆有 (可讀寫)。
注意事項 |
---|
屬性名稱不可與包含該屬性之 Managed 類別的名稱相符。getter 函式的傳回類型必須符合對應 setter 函式之最後一個參數的類型。 |
範例
下列範例會將純量屬性 (Size) 加入至 MyClass 宣告。 然後會使用 get_Size 和 set_Size 函式隱含設定及擷取這個屬性:
// keyword__property.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
using namespace System;
__gc class MyClass {
public:
MyClass() : m_size(0) {}
__property int get_Size() { return m_size; }
__property void set_Size(int value) { m_size = value; }
// compiler generates pseudo data member called Size
protected:
int m_size;
};
int main() {
MyClass* class1 = new MyClass;
int curValue;
Console::WriteLine(class1->Size);
class1->Size = 4; // calls the set_Size function with value==4
Console::WriteLine(class1->Size);
curValue = class1->Size; // calls the get_Size function
Console::WriteLine(curValue);
}
Output
0
4
4