55 lines
1.1 KiB
C#
55 lines
1.1 KiB
C#
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
|
||
|
interface IMyCollection<T> : ICollection<T> {
|
||
|
|
||
|
}
|
||
|
|
||
|
class MyCollection<T> : IMyCollection<T> {
|
||
|
|
||
|
public void AddRange(IMyCollection<T> items) {
|
||
|
}
|
||
|
|
||
|
public void AddRange(IEnumerable<T> 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<T> GetEnumerator() { return null; }
|
||
|
|
||
|
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return null; }
|
||
|
|
||
|
}
|
||
|
|
||
|
class P {
|
||
|
|
||
|
static protected MyCollection<String> foo = new MyCollection<String>();
|
||
|
|
||
|
static protected MyCollection<String> bar = new MyCollection<String>();
|
||
|
|
||
|
static public MyCollection<String> 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()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
}
|