Diskuze: Jak obejít System.StackOverflowException ?
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 5 zpráv z 5.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
To, že máš 20 if by nemělo nijak vadit. Pravděpodobně se ti tam něco
nějak cyklí nebo se volá rekurze.
Obecně se dá říct, že stack roste pokud se zavolá vnořená metoda -
každé volání si musí na stacku uložit alespoň pár bytů + alokovat
místo pro lokální proměnné.
Vzhledem k tomu, že se systém tváří tak, že máš k dispozici gigabajty na
32-bit a terabajty na 64-bit OS, prakticky nikdy stack nemůžeš naplnit, pokud
se neděje něco hodně špatně - třeba nekonečná rekurze.
Také se můžeš podívat na dokumentaci té výjimky .
Zkusil jsem: Zkoušel jsem obejít více if tím, že některé z nich dám do metody a systém pak bude brát mou vyvolanou metodu jako kratší, ale nefunguje to i tak.
Díky důvodům výše uvedeným to stack overflow akorát zhorší.
TL;DR máš tam nekonečnou rekurzi
Stack ma vetsinou defaultne jen 1MB, ty GB/TB a vic jsou na heapu.
Děkuji je to možné, protože jsem to kontroloval v noci a asi jsem se přehlídl. Už to funguje děkuju.
Co to máš za 20 vnořených if
ů, že to nejde zpracovat
boolovou algebrou na jednodušší strukturu? To tam máš 220
možností? O_o?
Zobrazeno 5 zpráv z 5.