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::Array
devralı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ü V
olan 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();
}