Compiler Warning (level 1) CS3006

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

A method 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 Language independence and language-independent components.

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()  
    {  
    }  
}