VB.Net の落とし穴: 変数を宣言するときは常に変数を割り当てる


元の投稿: https://siderite.dev/blog/vbnet-gotcha-always-assign-variables-when-declarin

この Visual Basic .NET コードは何を表示するのでしょうか?

For x as Integer = 1 to 2
  Dim b as Boolean
  Console.WriteLine("b is " & b)
  b = true
Next


Visual Basic でコーディングしたことがない場合でも、C# などに変換するのは比較的簡単なコードです.

for (var x = 1; x <= 2; x++)
{
    bool b;
    Console.WriteLine("b is " + b);
    b = true;
}


さて、コードは何を表示するでしょうか?これから始めましょう.このコードはコンパイルされず、代わりに次のようになります.未割り当てのローカル変数 'b' の使用.

しかし、VB の場合はどうでしょうか. Option Strict ON を使用しても、警告は表示されません.出力は次のようになります: False、True.何?!

結論として、VB.Net では変数に値を割り当てずに変数を宣言できますが、その値は矛盾します.宣言する変数は必ず設定してください.