属性 (C++/CX)

属性は、角かっこ内で Windows ランタイムの型とメソッドの先頭に付加して、メタデータ作成での特定の動作を指定できるようにする特殊な種類の ref クラスです。 複数の定義済み属性 (Windows::Foundation::Metadata::WebHostHidden など) は通常 C++/CX コードで使用されます。 この例では、属性がクラスに適用される方法を示します。

[Windows::Foundation::Metadata::WebHostHidden]
public ref class MyClass : Windows::UI::Xaml::DependencyObject {};

カスタム属性

カスタム属性も定義できます。 カスタム属性は、次の Windows ランタイム規則に従う必要があります。

  • カスタム属性は、パブリック フィールドだけを格納できます。

  • カスタム属性フィールドは、属性がクラスに適用されるときに初期化できます。

  • フィールドは、次に示すいずれかの型になることができます。

    • int32 (int)

    • uint32 (unsigned int)

    • [bool]

    • Platform::String^

    • Windows::Foundation::HResult

    • Platform::Type^

    • パブリック列挙型クラス (ユーザー定義列挙型を含む)

次の例では、カスタム属性を定義し、使用時に初期化する方法を示します。

[Windows::Foundation::Metadata::WebHostHiddenAttribute]
public ref class MyCustomAttribute sealed : Platform::Metadata::Attribute {
public:
    int Num;
    Platform::String^ Msg;
};

[MyCustomAttribute(Num=5, Msg="Hello")]
public ref class Class1 sealed
{
public:
    Class1();
};

関連項目

型システム (C++/CX)
C++/CX 言語リファレンス
名前空間参照