Aracılığıyla paylaş


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

Platform::Array<T> C++/CX içindeki tür veya C++/CLI'daki dizi anahtar sözcüğü, belirtilen türde ve ilk değerde bir dizi bildirir.

Tüm Platformlar

Dizi, bildirimdeki kapanış açılı ayracından (>) sonra tanıtıcıdan nesneye (^) değiştirici kullanılarak bildirilmelidir. Dizinin öğe sayısı türün bir parçası değildir. Bir dizi değişkeni farklı boyutlardaki dizilere başvurabilir.

Standart C++'ın aksine, alt simge işaretçi aritmetiği için bir eş anlamlı değildir ve commutative değildir.

Diziler hakkında daha fazla bilgi için bkz:

Windows Çalışma Zamanı

Diziler ad alanının Platform üyeleridir. Diziler yalnızca bir boyutlu olabilir.

Sözdizimi

Söz diziminin ilk örneği, dizi ayırmak için ref yeni toplama anahtar sözcüğünü kullanır. İkinci örnek yerel bir dizi bildirir.

[qualifiers] [Platform::]Array<[qualifiers] array-type [,rank]>^ identifier =
    ref new[Platform::]Array<initialization-type> [{initialization-list [,...]}]

[qualifiers] [Platform::]Array<[qualifiers] array-type [,rank]>^ identifier =
    {initialization-list [,...]}

Elemeleri
(İsteğe bağlı) Bu depolama sınıfı tanımlayıcılarından biri veya daha fazlası: mutable, volatile, const, extern, static.

dizi türü
Dizi değişkeninin türü. Geçerli türler Windows Çalışma Zamanı sınıflar ve temel türler, başvuru sınıfları ve yapıları, değer sınıfları ve yapıları ve yerel işaretçilerdir (type*).

rütbe
(İsteğe bağlı) Dizinin boyut sayısı. 1 olmalı.

identifier
Dizi değişkeninin adı.

başlatma türü
Diziyi başlatan değerlerin türü. Genellikle dizi türü ve başlatma-türü aynı türdedir. Ancak, başlatma türünden dizi türüne dönüştürme varsa türler farklı olabilir; örneğin, başlatma türü dizi türünden türetilmişse.

başlatma listesi
(İsteğe bağlı) Dizi öğelerini başlatan küme ayraçlarındaki değerlerin virgülle ayrılmış listesi. Örneğin, rank-size-list (3)3 öğeden oluşan tek boyutlu bir diziyi bildiren ise, başlatma listesi olabilir {1,2,3}.

Açıklamalar

Derleme zamanında bir türün ile __is_ref_array(type)başvuru sayılan bir dizi olup olmadığını algılayabilirsiniz. Daha fazla bilgi için bkz . Tür Özellikleri için Derleyici Desteği.

Gereksinimler

Derleyici seçeneği: /ZW

Örnekler

Aşağıdaki örnek, 100 öğe içeren tek boyutlu bir dizi oluşturur.

// cwr_array.cpp
// compile with: /ZW
using namespace Platform;
ref class MyClass {};
int main() {
   // one-dimensional array
   Array<MyClass^>^ My1DArray = ref new Array<MyClass^>(100);
   My1DArray[99] = ref new MyClass();
}

Ortak Dil Çalışma Zamanı

Sözdizimi

Söz diziminin ilk örneği, bir dizi ayırmak için gcnew anahtar sözcüğünü kullanır. İkinci örnek yerel bir dizi bildirir.

[qualifiers] [cli::]array<[qualifiers] array-type [,rank]>^ identifier =
    gcnew [cli::]array<initialization-type[,rank]>(rank-size-list[,...]) [{initialization-list [,...]}]

[qualifiers] [cli::]array<[qualifiers] array-type [,rank]>^ identifier =
    {initialization-list [,...]}

Elemeleri
(İsteğe bağlı) Bu depolama sınıfı tanımlayıcılarından biri veya daha fazlası: mutable, volatile, const, extern, static.

dizi türü
Dizi değişkeninin türü. Geçerli türler Windows Çalışma Zamanı sınıfları ve temel türler, başvuru sınıfları ve yapıları, değer sınıfları ve yapıları, yerel işaretçiler (type*) ve yerel POD (düz eski veri) türleridir.

rütbe
(İsteğe bağlı) Dizinin boyut sayısı. Varsayılan değer 1'dir; maksimum değer 32'dir. Dizinin her boyutu bir dizidir.

identifier
Dizi değişkeninin adı.

başlatma türü
Diziyi başlatan değerlerin türü. Genellikle dizi türü ve başlatma-türü aynı türdedir. Ancak, başlatma türünden dizi türüne dönüştürme varsa türler farklı olabilir; örneğin, başlatma türü dizi türünden türetilmişse.

rank-size-list
Dizideki her boyutun boyutunun virgülle ayrılmış listesi. Alternatif olarak, initialization-list parametresi belirtilirse, derleyici her boyutun boyutunu alabilir ve rank-size-list atlanabilir.

başlatma listesi
(İsteğe bağlı) Dizi öğelerini başlatan küme ayraçlarındaki değerlerin virgülle ayrılmış listesi. Veya çok boyutlu bir dizideki öğeleri başlatan iç içe başlatma listesi öğelerinin virgülle ayrılmış listesi.

Örneğin, rank-size-list (3)3 öğeden oluşan tek boyutlu bir diziyi bildiren ise, başlatma listesi olabilir {1,2,3}. Rank-size-list (3,2,4)ilk boyutta 3 öğeden oluşan üç boyutlu bir diziyi, ikincisinde 2 öğeyi ve üçüncü boyutta 4 öğeyi bildiren ise, başlatma-listesi olabilir{{1,2,3},{0,0},{-5,10,-21,99}}.)

Açıklamalar

dizi Platform, varsayılan ve cli Ad Alanları ad alanındadır.

Standart C++ gibi bir dizinin dizinleri de sıfır tabanlıdır ve dizi köşeli ayraçlar ([]) kullanılarak alt simgelenir. Standart C++'ın aksine, çok boyutlu bir dizinin dizinleri, her boyut için köşeli ayraç ([]) işleç kümesi yerine her boyut için dizin listesinde belirtilir. Örneğin, identifier[index1][ index2] yerine identifier[index1, index2] .

Tüm yönetilen diziler öğesinden System::Arraydevralır. herhangi bir yöntemi veya özelliği System::Array doğrudan dizi değişkenine uygulanabilir.

Öğe türü yönetilen bir sınıfın işaretçisi olan bir dizi ayırdığınızda, öğeler 0 ile başlatılır.

Öğe türü bir değer türü Volan bir dizi ayırdığınızda, için varsayılan oluşturucu V her dizi öğesine uygulanır. Daha fazla bilgi için bkz . .NET Framework C++ Yerel Türlerine Eşdeğerler (C++/CLI).

Derleme zamanında, bir türün ile __is_ref_array(type)ortak dil çalışma zamanı (CLR) dizisi olup olmadığını algılayabilirsiniz. Daha fazla bilgi için bkz . Tür Özellikleri için Derleyici Desteği.

Gereksinimler

Derleyici seçeneği: /clr

Örnekler

Aşağıdaki örnek, 100 öğe içeren tek boyutlu bir dizi ve birinci boyutta 3 öğe, ikincide 5 öğe ve üçüncü boyutta 6 öğe içeren üç boyutlu bir dizi oluşturur.

// clr_array.cpp
// compile with: /clr
ref class MyClass {};
int main() {
   // one-dimensional array
   array<MyClass ^> ^ My1DArray = gcnew array<MyClass ^>(100);
   My1DArray[99] = gcnew MyClass();

   // three-dimensional array
   array<MyClass ^, 3> ^ My3DArray = gcnew array<MyClass ^, 3>(3, 5, 6);
   My3DArray[0,0,0] = gcnew MyClass();
}

Ayrıca bkz.

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