Wenn ich eine nicht blitable Struktur habe, wie wird es vom Compiler/CLR behandelt?Sind nicht blitable Strukturen als Referenztyp behandelt?
Zum Beispiel: wenn ich eine nicht blitable Struktur X habe, die ich ohne das Schlüsselwort 'ref/out' zu einer Methode, was wird eigentlich an diese Methode übergeben werden? Ein Zeiger auf die tatsächlich zugewiesene Struktur auf dem verwalteten Heap oder dem Compiler erstellt eine Kopie der Instanz der Struktur auf dem Stapel, wenn sie an die Methode übergeben wird?
Danke.
Es macht eine Kopie. Wenn Sie Änderungen an der zu kopierenden Struktur benötigen, müssen Sie [Out] verwenden. –
Hallo @HansPassant. Das Problem ist, dass ich Async-Methoden verwende und sie scheinen nicht als Parameter zu akzeptieren: Zeiger, Ref und Out. Ich lese über diese "Einschränkung" und eine Problemumgehung, die ich fand, besteht darin, die Klasse Tuple zu verwenden, um die Referenzen zu halten, die an die asynchrone Methode übergeben werden. Weißt du, ob diese Problemumgehung irgendwelche Nachteile hat? Vielen Dank. – ptr0x
Muss es eine Struktur sein? Kannst du überhaupt eine Klasse benutzen? – argaz