失礼。

void hoge( ref List<int> a )
{
List<int> a = new List<int>();
}

としてコンパイルしてみたところ

ローカルの変数 'a' をこのスコープで宣言することはできません。
これは、'親またはカレント' スコープで別の意味を持つ 'a' の意味が
変更されるのを避けるためです。

というエラーが返されてしまった。
ref→out
に変更しても同じエラーが返される。
なにかまずいことでもしちゃったかな?