Aracılığıyla paylaş


property (C++/CLI ve C++/CX)

Veri üyesi veya dizi öğesi gibi davranan ve erişilen bir üye işlevi olan bir özelliği bildirir.

Tüm çalışma zamanları

Aşağıdaki özellik türlerinden birini bildirebilirsiniz.

  • simple özelliği
    Varsayılan olarak, özellik değerini atayan bir set erişimci, özellik değerini alan bir get erişimci ve özellik değerini içeren derleyici tarafından oluşturulan bir özel veri üyesi oluşturur.

  • özellik bloğu
    Kullanıcı tanımlı get veya set erişimci oluşturmak için bir özellik bloğu kullanın. hem hem set de get erişimcileri tanımlanmışsa özelliği okunur ve yazılır, yalnızca get erişimci tanımlanmışsa salt okunur ve yalnızca set erişimci tanımlanmışsa salt yazılır.

    Özellik değerini içermesi için bir veri üyesini açıkça bildirmeniz gerekir.

  • dizine alınan özellik
    Bir veya daha fazla dizin tarafından belirtilen bir özellik değerini almak ve ayarlamak için kullanabileceğiniz özellik bloğu.

    Kullanıcı tanımlı özellik adına veya varsayılan özellik adına sahip dizine alınan bir özellik oluşturabilirsiniz. Varsayılan dizin özelliğinin adı, özelliğin tanımlandığı sınıfın adıdır. Varsayılan özelliği bildirmek için özellik adı yerine anahtar sözcüğünü belirtin default .

Özellik değerini içermesi için bir veri üyesini açıkça bildirin. Dizine alınan bir özellik için veri üyesi genellikle bir dizi veya koleksiyondur.

Sözdizimi

property type property_name;

property type property_name {
   access-modifier type get() inheritance-modifier {property_body};
   access-modifier void set(type value) inheritance-modifier {property_body};
}

property type property_name[index_list] {
   access-modifier type get(index_list) inheritance-modifier {property_body};
   access-modifier void set(index_list, value) inheritance-modifier {property_body};
}

property type default[index_list] {
   access-modifier type get(index_list) inheritance-modifier {property_body};
   access-modifier void set(index_list, value) inheritance-modifier {property_body};
}

Parametreler

type
Özellik değerinin veri türü ve özelliğin kendisi.

property_name
Özelliğin adı.

access-modifier
Erişim niteleyicisi. Geçerli niteleyiciler ve virtualşeklindedirstatic.

get veya set erişimcilerinin niteleyiciyi virtual kabul etmesi gerekmez, ancak niteleyici üzerinde static anlaşmaları gerekir.

inheritance-modifier
Devralma niteleyicisi. Geçerli niteleyiciler ve sealedşeklindedirabstract.

index_list
Bir veya daha fazla dizinin virgülle ayrılmış listesi. Her dizin bir dizin türünden ve özellik yöntemi gövdesinde kullanılabilecek isteğe bağlı bir tanımlayıcıdan oluşur.

value
Bir işlemdeki özelliğe atanacak veya bir set işlemde get alınacak değer.

property_body
veya get erişimcisinin set özellik yöntemi gövdesi. property_body, temel alınan özellik veri üyesine erişmek için veya kullanıcı tanımlı işlemede parametre olarak kullanabilirindex_list.

Windows Çalışma Zamanı

Daha fazla bilgi için bkz . Özellikler (C++/CX).

Gereksinimler

Derleyici seçeneği: /ZW

Ortak Dil Çalışma Zamanı

Sözdizimi

modifier property type property_name;

modifier property type property_name {
   modifier void set(type);
   modifier type get();
}
modifier property type property_name[index-list, value] {
   modifier void set(index-list, value);
   modifier type get(index-list);

modifier property type default[index];
}

Parametreler

modifier
Özellik bildiriminde veya get/set erişimci yönteminde kullanılabilen değiştirici. Olası değerler ve virtualşeklindedirstatic.

type
özelliği tarafından temsil edilen değerin türü.

property_name
Yöntemin raise parametreleri; temsilcinin imzası ile eşleşmelidir.

index_list
Köşeli ayraç içinde belirtilen bir veya daha fazla dizinin virgülle ayrılmış listesi (alt simge işleci, []). Her dizin için bir tür ve isteğe bağlı olarak özellik yöntemi gövdesinde kullanılabilecek bir tanımlayıcı belirtin.

Açıklamalar

İlk söz dizimi örneği, hem hem de yöntemini örtük olarak bildiren basit bir set get özelliği gösterir. Derleyici, özelliğin değerini depolamak için otomatik olarak bir özel alan oluşturur.

İkinci söz dizimi örneği, hem hem de yöntemini açıkça bildiren bir set get özellik bloğunu gösterir.

Üçüncü söz dizimi örneğinde müşteri tanımlı dizin özelliği gösterilir. Dizin özelliği, ayarlanacak veya alınacak değere ek olarak parametreler alır. Özellik için bir ad belirtin. Basit bir özelliğin set aksine, bir dizin özelliğinin ve get yöntemleri açıkça tanımlanmalıdır ve bu nedenle özellik için bir ad belirtmeniz gerekir.

Dördüncü söz dizimi örneği, türün bir örneğine dizi benzeri erişim sağlayan varsayılan bir özelliği gösterir. anahtar sözcüğü, defaultyalnızca varsayılan bir özellik belirtmek için hizmet eder. Varsayılan özelliğin adı, özelliğin tanımlandığı türün adıdır.

Anahtar property sözcük bir sınıf, arabirim veya değer türünde görünebilir. Bir özelliğin işlevi get (salt okunur), set işlevi (salt yazma) veya her ikisi de (okuma-yazma) olabilir.

Özellik adı, onu içeren yönetilen sınıfın adıyla eşleşemez. Getter işlevinin dönüş türü, karşılık gelen bir ayarlayıcı işlevinin son parametresinin türüyle eşleşmelidir.

İstemci koduna, bir özellik sıradan bir veri üyesinin görünümüne sahiptir ve veri üyesiyle aynı söz dizimi kullanılarak öğesine yazılabilir veya buradan okunabilir.

get ve set yöntemleri değiştirici üzerinde virtual anlaşmak gerekmez.

ve set yönteminin get erişilebilirliği farklılık gösterebilir.

Bir özellik yönteminin tanımı, sıradan bir yöntem gibi sınıf gövdesinin dışında görünebilir.

Bir get mülk için ve set yöntemi değiştirici üzerinde static kabul edilecektir.

ve set yöntemleri aşağıdaki açıklamaya get uyuyorsa bir özellik skaler olur:

  • yönteminin get parametresi yoktur ve dönüş türüne Tsahiptir.

  • set yöntemi, türünde Tbir parametreye ve dönüş türüne voidsahiptir.

Bir kapsamda aynı tanımlayıcıya sahip yalnızca bir skaler özellik bildirilmelidir. Skaler özellikler aşırı yüklenemez.

Bir özellik veri üyesi bildirildiğinde, derleyici sınıfına "yedekleme deposu" olarak da adlandırılan bir veri üyesi ekler. Ancak, veri üyesinin adı, kaynaktaki üyeye, içeren sınıfın gerçek bir veri üyesiymiş gibi başvuramazsınız. Türünüzün meta verilerini görüntülemek ve özelliğin yedekleme deposu için derleyici tarafından oluşturulan adı görmek için ildasm.exe kullanın.

Bir özellik bloğundaki erişimci yöntemleri için farklı erişilebilirlik izni verilir. Başka bir ifadeyle set , yöntemi olabilir public ve get yöntemi de olabilir private. Ancak, bir erişimci yönteminin, özelliğin bildirimindekinden daha az kısıtlayıcı bir erişilebilirliği olması hatadır.

property bağlama duyarlı bir anahtar sözcüktür. Daha fazla bilgi için bkz . Bağlama duyarlı anahtar sözcükler.

Gereksinimler

Derleyici seçeneği: /clr

Örnekler

Aşağıdaki örnekte, bir özellik veri üyesinin ve özellik bloğunun bildirimi ve kullanımı gösterilmektedir. Ayrıca, bir özellik erişimcisinin sınıf dışında tanımlanabileceğini gösterir.

// mcppv2_property.cpp
// compile with: /clr
using namespace System;
public ref class C {
   int MyInt;
public:

   // property data member
   property String ^ Simple_Property;

   // property block
   property int Property_Block {

      int get();

      void set(int value) {
         MyInt = value;
      }
   }
};

int C::Property_Block::get() {
   return MyInt;
}

int main() {
   C ^ MyC = gcnew C();
   MyC->Simple_Property = "test";
   Console::WriteLine(MyC->Simple_Property);

   MyC->Property_Block = 21;
   Console::WriteLine(MyC->Property_Block);
}
test

21

Ayrıca bkz.

.NET ve UWP İçin Bileşen Uzantıları