私はここに少しばかげたコードを持っています
Async Function GetCoolNumber() As Task(Of Double)
Dim n = Await GetNumberFromSomeAsyncSource()
If IsCool(n) Then
Return n
End If
Return Await GetCoolNumber()
End Function
Private Function GetNumberFromSomeAsyncSource() As Task(Of Double)
Private Function IsCool(n As Object) As Boolean
これで再帰は正常に機能し、希望する結果が得られます。もちろん、私の実際のコードはもっと複雑です。しかし、これは悪い習慣と見なされますか?
この方法で無限再帰を行った場合はどうなりますか?何かが吹くでしょうか?私の直感は、スタックを吹き飛ばすのではなく、タスクをヒープにダンプし続けるだろうということです。