using System; using System.Collections.Generic; interface IMyCollection : ICollection { } class MyCollection : IMyCollection { public void AddRange(IMyCollection items) { } public void AddRange(IEnumerable items) { } public int Count { get { return 0; } } public bool IsReadOnly { get { return false; } } public void Add(T item) { } public void Clear() { } public bool Contains(T item) { return false; } public void CopyTo(T[] a, int i) { } public bool Remove(T item) { return false; } public IEnumerator GetEnumerator() { return null; } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return null; } } class P { static protected MyCollection foo = new MyCollection(); static protected MyCollection bar = new MyCollection(); static public MyCollection IgnoreTokens { get { if (foo.Count == 0) foo.AddRange(bar); // false error on Mono 2.0 and 2.4: The call is ambiguous between... return foo; } } public static void Main() { } }