Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

46 lines
805 B
C#

using System;
using SCG = System.Collections.Generic;
public interface IExtensible<T>
{
void AddAll<U> (SCG.IEnumerable<U> items)
where U : T;
}
public abstract class CollectionValueTester<R,S>
where R : IExtensible<S>
{
protected R collection;
}
public class ExtensibleTester<U> : CollectionValueTester<U,int>
where U : IExtensible<int>
{
public ExtensibleTester (U u)
{
this.collection = u;
}
public void Direct()
{
collection.AddAll<int> (new int[] { });
}
}
public class Extensible<V> : IExtensible<V>
{
public void AddAll<W> (SCG.IEnumerable<W> items)
where W : V
{ }
}
class X
{
public static void Main ()
{
Extensible<int> ext = new Extensible<int> ();
ExtensibleTester<Extensible<int>> tester = new ExtensibleTester<Extensible<int>> (ext);
tester.Direct ();
}
}