Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Özniteliklere geçirilen değerlerin derleme zamanında derleyici tarafından bilinmesi gerekir. Öznitelik parametreleri aşağıdaki türlerden olabilir:
boolchar,unsigned charshort,unsigned shortint,unsigned intlong,unsigned long__int64, imzasız __int64float,doublewchar_tchar*veya veyawchar_t*System::String*System::Type ^System::Object ^enum
Örnek: Öznitelik parametre türleri
Kod
// attribute_parameter_types.cpp
// compile with: /clr /c
using namespace System;
ref struct AStruct {};
[AttributeUsage(AttributeTargets::ReturnValue)]
ref struct Attr : public Attribute {
Attr(AStruct ^ i){}
Attr(bool i){}
Attr(){}
};
ref struct MyStruct {
static AStruct ^ x = gcnew AStruct;
[returnvalue:Attr(x)] int Test() { return 0; } // C3104
[returnvalue:Attr] int Test2() { return 0; } // OK
[returnvalue:Attr(true)] int Test3() { return 0; } // OK
};
Örnek: Adsız bağımsız değişkenler adlandırılmış bağımsız değişkenlerden önce
Açıklama
Öznitelikler belirtilirken, tüm adlandırılmamış (konumsal) bağımsız değişkenlerin adlandırılmış bağımsız değişkenlerden önce olması gerekir.
Kod
// extending_metadata_c.cpp
// compile with: /clr /c
using namespace System;
[AttributeUsage(AttributeTargets::Class)]
ref class MyAttr : public Attribute {
public:
MyAttr() {}
MyAttr(int i) {}
property int Priority;
property int Version;
};
[MyAttr]
ref class ClassA {}; // No arguments
[MyAttr(Priority = 1)]
ref class ClassB {}; // Named argument
[MyAttr(123)]
ref class ClassC {}; // Positional argument
[MyAttr(123, Version = 1)]
ref class ClassD {}; // Positional and named
Örnek: Tek boyutlu dizi öznitelik parametresi
Açıklama
Öznitelik parametreleri, önceki türlerin tek boyutlu dizileri olabilir.
Kod
// extending_metadata_d.cpp
// compile with: /clr /c
using namespace System;
[AttributeUsage(AttributeTargets::Class)]
public ref struct ABC : public Attribute {
ABC(array<int>^){}
array<double> ^ param;
};
[ABC( gcnew array<int> {1,2,3}, param = gcnew array<double>{2.71, 3.14})]
ref struct AStruct{};