>c#7系以前と同じ挙動にするなら >var a = new string[1]?; >という記述になるはず ?の位置は[1]の前ですか? まあ書き方はともかく、もしvar a = new StringBuilder[100];とすると 自動的に100個のStringBuilderのインスタンスが作られるなら、 そのような動作を望まなければ配列の要素の型はnull許容にしたほうが良さそうですね
そうすると、例えばジェネリック型を使うときにはstringのような型とStringBuilderのような型の 区別をつけたくなることもありそうですし、ジェネリック型制約に新しく where T : immutable(intやstringは許すけどStringBuilderは許さない)が 追加されたり・・・とか妄想してみましたw