Advertencia del compilador (nivel 1) CS3007

Actualización: noviembre 2007

Mensaje de error

El método sobrecargado 'método' que sólo se diferencia por tipos de matriz sin nombre no es compatible con CLS
Overloaded method 'method' differing only by unnamed array types is not CLS-compliant

Este error aparece si tiene un método sobrecargado que toma una matriz escalonada (jagged array) y la única diferencia entre las firmas de método es el tipo de elemento de la matriz. Para evitar este error, piense en utilizar una matriz rectangular en lugar de una matriz escalonada; utilice un parámetro adicional para eliminar la ambigüedad de la llamada a la función; cambie el nombre de uno o varios métodos sobrecargados; o bien, si no es necesaria la compatibilidad con CLS, quite el atributo CLSCompliantAttribute. Para obtener más información sobre la compatibilidad con CLS, vea Escribir código conforme con CLS y Common Language Specification.

Ejemplo

En el siguiente ejemplo se genera el error CS3007:

// CS3007.cs
[assembly: System.CLSCompliant(true)]
public struct S
{
    public void F(int[][] array) { }
    public void F(byte[][] array) { }  // CS3007
    // Try this instead:
    // public void F1(int[][] array) {}
    // public void F2(byte[][] array) {}
    // or 
    // public void F(int[,] array) {}
    // public void F(byte[,] array) {}
}