Compiler Warning (level 2) CS0467

 

Updated: July 20, 2015

For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

Ambiguity between method 'method' and non-method 'non-method'.Using method group.

Inherited members from different interfaces that have the same signature cause an ambiguity error.

The following example generates CS0467.

// CS0467.cs  
interface IList   
{  
    int Count { get; set; }  
}  
  
interface ICounter  
{  
    void Count(int i);  
}  
  
interface IListCounter : IList, ICounter {}  
  
class Driver   
{  
    void Test(IListCounter x)  
    {  
        // The following line causes the warning. The assignment also  
        // causes an error because you can't assign a value to a method.  
        x.Count = 1;  
        x.Count(3);     
        // To resolve the warning, you can change the name of the method or   
        // the property.  
  
        // You also can disambiguate by specifying IList or ICounter.  
        ((IList)x).Count = 1;  
        ((ICounter)x).Count(3);  
    }  
  
    static void Main()   
    {  
    }  
}  

Show: