2009-05-07 23 views
5

1D yönetilen öğeler dizisini bildirmek ve başlatmak istiyorum. C# kodu iseYönetilen C++ 'da dizi başlatılması

, ben bu gibi yazmak istiyorum:

VdbMethodInfo[] methods = new VdbMethodInfo[] { 
    new VdbMethodInfo("Method1"), 
    new VdbMethodInfo("Method2") 
}; 

yazmaya çalışıyorum (aslında, ben bir program yazıyorum, iyi oluşturmak) aynı şeyi yönetilen C++ .. .

Şimdiye kadar var:

    01:

    typedef array<VdbMethodInfo^, 1> MethodArray; 
    // How do I avoid pre-declaring the size of the array up front? 
    MethodArray^ methods = gcnew MethodArray(2); 
    methods[0] = gcnew VdbMethodInfo("Method1"); 
    methods[1] = gcnew VdbMethodInfo("Method2"); 
    

    bu iki sorun vardır

  1. It Yönetilen C++ GC diziler için bir "dizi başlatma" sözdizimi var mı benim kod üreteci

için sakıncalı olduğu kadar ön dizinin boyutunu, beyan açmamı

  • daha ayrıntılı var? Doğru sözdizimi nedir? Bu ve diğer benzer sorular için iyi bir web bağlantısı var mı?

  • cevap

    25

    C++/CLI dizisi, & bildirgesini başlatır sözdizimini C# 'dan farklı değil. İşte ... bir örnek

    array<String^>^ myArray = gcnew array<String^> {"first", "second"}; 
    
    +1

    teşekkürler - Ben arıyordu tam olarak ne! –

    +0

    Reflektör için C++/CLI decompiler, gcnew ve bir sebepten dolayı bildirimde dizi türü eksikti. Ekleme sorunu çözdü. Teşekkürler. http://www.sandpapersoftware.com/Main/Reflector.html – jpierson

    İlgili konular