goto が悪い設計手法であることはわかっています。しかし、ツールボックスに goto と if しかなく、無人島で立ち往生していると想像してください。そうではないでしょう:
int i = 0;
while (i < 10) i++;
これと同一であること:
int i = 0;
loop: if (i < 10) { i++; goto loop; }
?
条件付きロジック、変数の割り当て/変更、メソッド呼び出し、ジャンプを使用するだけで、通常 c# でできることは何でもできるというのは本当ではないでしょうか?