ref new, gcnew (C++/CLI i C++/CX)
Nowe zagregowane słowo kluczowe ref przydziela wystąpienie typu, który jest bezużyteczny, gdy obiekt staje się niedostępny, i zwraca uchwyt (^) do przydzielonego obiektu.
Wszystkie środowiska wykonawcze
Pamięć dla wystąpienia typu przydzielonego przez nowy ref jest automatycznie cofniętą przydział.
Nowa operacja ref zgłasza błąd OutOfMemoryException
, jeśli nie może przydzielić pamięci.
Aby uzyskać więcej informacji na temat przydzielania i cofania przydziału pamięci dla natywnych typów języka C++, zobacz nowe i usunięte operatory.
Środowisko wykonawcze systemu Windows
Użyj polecenia ref new, aby przydzielić pamięć dla obiektów środowisko wykonawcze systemu Windows, których okres istnienia ma być administrowany automatycznie. Obiekt jest automatycznie cofany, gdy jego liczba odwołań przechodzi do zera, co występuje po ostatniej kopii odwołania zniknął z zakresu. Aby uzyskać więcej informacji, zobacz Ref classes and structs (Klasy ref i struktury).
Wymagania
Opcja kompilatora: /ZW
środowiska uruchomieniowe w trakcie wykonania
Pamięć dla typu zarządzanego (odwołanie lub typ wartości) jest przydzielana przez gcnew i cofana przydział przy użyciu odzyskiwania pamięci.
Wymagania
Opcja kompilatora: /clr
Przykłady
W poniższym przykładzie użyto biblioteki gcnew do przydzielenia obiektu Message.
// 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;
//...
}
W poniższym przykładzie użyto biblioteki gcnew do utworzenia typu wartości pola do użycia, takiego jak typ odwołania.
// 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
Zobacz też
Rozszerzenia składników dla platformy .NET i platformy uniwersalnej systemu Windows
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla