Предупреждение компилятора (уровень 1) CS3007
Обновлен: Ноябрь 2007
Сообщение об ошибке
Переопределенный метод "метод", отличающийся только типами массивов без имен, несовместим с CLS
Overloaded method 'method' differing only by unnamed array types is not CLS-compliant
Эта ошибка возникает, если имеется перегруженный метод, который принимает массив массивов, и единственное различие между подписями методов заключается в типе элементов массива. Чтобы избежать возникновения этой ошибки, рекомендуется выполнить следующие действия: использовать не массив массивов, а прямоугольный массив; использовать дополнительный параметр для устранения неоднозначности при вызове функции; переименовать один из перегруженных методов; удалить атрибут CLSCompliantAttribute (если совместимость со спецификацией CLS не требуется). Дополнительные сведения о совместимости со спецификацией CLS содержатся в разделах Написание CLS-совместимого кода и Спецификация CLS.
Пример
Следующий пример приводит к возникновению предупреждения 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) {}
}