Why do I get Code Analysis CA1062 on an out parameter in this code?

Posted by brickner on Stack Overflow See other posts from Stack Overflow or by brickner
Published on 2010-05-18T20:38:27Z Indexed on 2010/05/18 20:40 UTC
Read the original article Hit count: 311

I have a very simple code (simplified from the original code - so I know it's not a very clever code) that when I compile in Visual Studio 2010 with Code Analysis gives me warning CA1062: Validate arguments of public methods.

public class Foo
{
    protected static void Bar(out int[] x)
    {
        x = new int[1];
        for (int i = 0; i != 1; ++i)
            x[i] = 1;
    }
}

The warning I get:

CA1062 : Microsoft.Design : In externally visible method 'Foo.Bar(out int[])', validate local variable '(*x)', which was reassigned from parameter 'x', before using it.

I don't understand why do I get this warning and how can I resolve it without suppressing it? Can new return null? Is this a Visual Studio 2010 bug?

© Stack Overflow or respective owner

Related posts about code-analysis

Related posts about fxcop