I Schleife die Ausführung der Funktion Foo mehrfach zu zerstören:C# Variablen Speicher freizugeben
int Foo(int a)
{
int b = 5;
return a * b;
}
Ich glaube, die Variable „b“ wird, wird oft initialisiert (so oft wie I Funktion Foo initialisieren) . Angenommen, ich möchte "b" nicht außerhalb der Funktion Foo verschieben, muss ich den Speicher freigeben, der von nachfolgenden "b" -Initialisierungen beansprucht wird, oder wird das automatisch gemacht?
b wird auf dem Stapel erstellt. Sobald du zurückkehrst, geht es weg. –
@MatthewWhited 'b' wird nicht * unbedingt * auf dem Stapel erstellt; https://blogs.msdn.microsoft.com/ericlippert/2009/04/27/the-stack-is-an-implementation-detail-part-one/ –
Wenn Sie denken, dass Sie diese Art von Variablen _manage_ müssen empfehle Ihnen, [Value vs Reference Types] (http://www.albahari.com/valuevsreftypes.aspx) zu lesen und den Unterschied zwischen [heap and stack] zu verstehen (http://stackoverflow.com/questions/79923/what- und-wo-sind-der-Stapel-und-Heap) – Steve