問題
値を代入していない変数が初期化されている
C#では初期化されなかったと思うけど。。。
解決
調べてみるとC++では以下のような宣言だけでもデフォルトコンストラクタで初期化される。
// 空文字の状態
std:string str;
ついでC#の方も調べてみると、メンバー変数は同じように初期化されるみたいだが、ローカル変数は初期化されないとのこと。
だから変な感じがしたのか。。。
ちなみにこれに気づいたのは静的解析で値を代入していない変数宣言に指摘を受けていたから。
初期化もしていないのになんで例外はく可能性があるんや?と思っていいたらそういうことだったのか。