|
|
@@ -0,0 +1,47 @@
|
|
|
+using System;
|
|
|
+
|
|
|
+public interface IFoo
|
|
|
+{
|
|
|
+ IFoo Hello ();
|
|
|
+}
|
|
|
+
|
|
|
+public interface IFoo<T> : IFoo
|
|
|
+{
|
|
|
+ new IFoo<T> Hello ();
|
|
|
+}
|
|
|
+
|
|
|
+public interface ICollectionValue<T>: IFoo<T>
|
|
|
+{
|
|
|
+}
|
|
|
+
|
|
|
+public interface ICollection<T>: ICollectionValue<T>
|
|
|
+{ }
|
|
|
+
|
|
|
+public abstract class EnumerableBase<T> : IFoo<T>
|
|
|
+{
|
|
|
+ public abstract IFoo<T> Hello();
|
|
|
+
|
|
|
+ IFoo IFoo.Hello ()
|
|
|
+ {
|
|
|
+ return Hello ();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+public abstract class CollectionBase<T> : EnumerableBase<T>
|
|
|
+{
|
|
|
+}
|
|
|
+
|
|
|
+public class HashBag<T>: CollectionBase<T>, ICollection<T>
|
|
|
+{
|
|
|
+ public override IFoo<T> Hello ()
|
|
|
+ {
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+class X
|
|
|
+{
|
|
|
+ static void Main ()
|
|
|
+ {
|
|
|
+ }
|
|
|
+}
|