Compiler Warning (level 1) CS3006

Overloaded method 'method' differing only in ref or out, or in array rank, is not CLS-compliant

A method does not cannot be overloaded based on the ref or out parameter and still comply with the Common Language Specification (CLS). For more information on CLS Compliance, see Writing CLS-Compliant Code and Common Language Specification.

Example

The following example generates CS3006. To resolve this warning, comment out the assembly-level attribute or remove one of the method definitions.

// CS3006.cs

using System;

[assembly: CLSCompliant(true)]
public class MyClass
{
    public void f(int i)
    {
    }

    public void f(ref int i)   // CS3006
    {
    }

    public static void Main()
    {
    }
}