Поделиться через


Ошибка компилятора CS0229

Обновлен: Ноябрь 2007

Сообщение об ошибке

Неоднозначность между "member1" и "member2"
Ambiguity between 'member1' and 'member2'

Члены разных интерфейсов имеют одинаковые имена. Для использования одинаковых имен необходимо указывать полные имена. Дополнительные сведения см. в разделе Интерфейсы (Руководство по программированию в C#).

7z6zzyh1.alert_note(ru-ru,VS.90).gifПримечание.

В некоторых случаях для устранения неоднозначности достаточно явно указать префиксы идентификаторов с помощью псевдонима using.

Пример

В следующем примере возникает ошибка CS0229.

// CS0229.cs

interface IList
{
    int Count
    {
        get;
        set;
    }

    void Counter();
}

interface Icounter
{
    double Count
    {
        get;
        set;
    }
}

interface IListCounter : IList , Icounter {}

class MyClass
{
    void Test(IListCounter x)
    {
        x.Count = 1;  // CS0229
        // Try one of the following lines instead:
        // ((IList)x).Count = 1;
        // or
        // ((Icounter)x).Count = 1;
    }

    public static void Main() {}
}