Mir wurde gesagt, dass jede Methode einen Stack von der Größe 1mb hat. Also nahm ich an, dass die Initialisierung von 256 Integer-Werten in einer Methode eine StackOverflowException verursacht. Ich habe das im Code versucht, aber keine Ausnahme wurde geworfen.
So, wie eine StackOverflowException absichtlich ausgelöst wird, ohne Rekursion zu verwenden?
Ich werde eine andere Methode hinzufügen: -)
%Vor% Nun ist diese Struktur 128kb :-) Wenn Sie eine lokale Variable (einer Methode, die nicht yield oder async verwendet) vom Typ FixedBufferExample
deklarieren, sollte sie 128kb des Stacks verwenden. Sie können Ihren Stack ziemlich schnell verbrauchen.
stackalloc
ist wahrscheinlich der einfachste Weg (vorausgesetzt, Sie möchten, dass die Laufzeit den Fehler und nicht Sie selbst auslöst):
Rufen Sie Ihr Eigentum in Ihrem Eigentum an (es ist Rekursion, aber es ist so gewöhnlich, dass ich es erwähnen musste):
%Vor%Tags und Links .net c# recursion stack-overflow