__property
注意
このトピックは、C++ マネージ拡張のバージョン 1 にのみ対応しています。この構文は、バージョン 1 のコードを保守するためだけに使用してください。新しい構文で同等の機能を使用する方法については、「プロパティ (C++ コンポーネント拡張)」を参照してください。
マネージ クラスのスカラー プロパティまたはインデックス付きプロパティを宣言します。
__property function-declarator
解説
__property キーワードは、プロパティの宣言を導入し、クラス、インターフェイス、または値型で使用できます。 プロパティには getter 関数 (読み取り専用)、setter 関数 (書き込み専用)、またはその両方 (読み取り/書き込み) を定義できます。
注意
プロパティ名は、それを含むマネージ クラスの名前と同じにすることはできません。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);
}
出力
0
4
4