У меня есть очень простой код (упрощенный по сравнению с исходным кодом - так что я знаю, что это не очень умный код), который при компиляции в Visual Studio 2010 с Code Analysis выдает мне предупреждение CA1062: проверка аргументов открытых методов.
public class Foo
{
protected static void Bar(out int[] x)
{
x = new int[1];
for (int i = 0; i != 1; ++i)
x[i] = 1;
}
}
Предупреждение, которое я получаю:
CA1062: Microsoft.Design: In
внешне видимый метод 'Foo.Bar (out
int []) ', проверить локальную переменную
'(* x)', который был переназначен из
параметр 'x', перед его использованием.
Я не понимаю, почему я получаю это предупреждение и как я могу устранить его, не подавляя его? Может ли new
вернуть null
? Это ошибка Visual Studio 2010?
UPDATE
Я решил открыть отчет об ошибке в Microsoft Connect .