ref new, gcnew (C++/CLI ve C++/CX)

ref yeni toplama anahtar sözcüğü, nesne erişilemez duruma geldiğinde toplanan ve ayrılan nesneye bir tanıtıcı (^) döndüren bir türün örneğini ayırır.

Tüm Çalışma Zamanları

Yeni başvuru tarafından ayrılan bir tür örneği için bellek otomatik olarak serbest bırakılır.

Bellek ayrılamazsa yeni başvuru işlemi oluşturulur OutOfMemoryException .

Yerel C++ türleri için belleğin nasıl ayrıldığı ve serbest bırakıldığı hakkında daha fazla bilgi için bkz . yeni ve silme işleçleri.

Windows Çalışma Zamanı

Yaşam ömrünü otomatik olarak yönetmek istediğiniz Windows Çalışma Zamanı nesneler için bellek ayırmak için yeni başvuru kullanın. Başvuru sayısı sıfıra çıktığında nesne otomatik olarak serbest bırakılır ve bu, başvurunun son kopyası kapsam dışına çıktıktan sonra gerçekleşir. Daha fazla bilgi için bkz . Başvuru sınıfları ve yapıları.

Gereksinimler

Derleyici seçeneği: /ZW

Ortak Dil Çalışma Zamanı

Yönetilen tür (başvuru veya değer türü) için bellek gcnew tarafından ayrılır ve atık toplama kullanılarak serbest bırakılır.

Gereksinimler

Derleyici seçeneği: /clr

Örnekler

Aşağıdaki örnek, bir message nesnesi ayırmak için gcnew kullanır.

// mcppv2_gcnew_1.cpp
// compile with: /clr
ref struct Message {
   System::String^ sender;
   System::String^ receiver;
   System::String^ data;
};

int main() {
   Message^ h_Message  = gcnew Message;
  //...
}

Aşağıdaki örnek gcnew kullanarak başvuru türü gibi kullanmak üzere kutulu bir değer türü oluşturur.

// example2.cpp : main project file.
// compile with /clr
using namespace System;
value class Boxed {
    public:
        int i;
};
int main()
{
    Boxed^ y = gcnew Boxed;
    y->i = 32;
    Console::WriteLine(y->i);
    return 0;
}
32

Ayrıca bkz.

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