空の配列はヌル参照の状態とは明確に異なります。 空の配列は、配列の実体を参照しているがその配列にはなにも格納されていない状態になります。 ヌル参照では、配列自体を参照していない状態になります。
空の配列が代入された配列変数とヌル参照の配列変数の違い
using System;
class Sample {
static void Main()
{
var arrEmpty = new string[0];
// 空の配列ではプロパティの参照などを行うことができる
Console.WriteLine(arrEmpty.Length);
string[] arrNull = null;
// ヌル参照の配列変数ではプロパティの参照などを行うことはできない
Console.WriteLine(arrNull.Length); // NullReferenceExceptionがスローされる
}
}