45 lines
657 B
C#
45 lines
657 B
C#
|
using System;
|
||
|
|
||
|
public interface IDirectedEnumerable
|
||
|
{
|
||
|
IDirectedEnumerable Backwards();
|
||
|
}
|
||
|
|
||
|
public interface IDirectedCollectionValue : IDirectedEnumerable
|
||
|
{
|
||
|
new IDirectedCollectionValue Backwards();
|
||
|
}
|
||
|
|
||
|
public class GuardedCollectionValue : IDirectedCollectionValue
|
||
|
{
|
||
|
IDirectedEnumerable IDirectedEnumerable.Backwards ()
|
||
|
{
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
public IDirectedCollectionValue Backwards ()
|
||
|
{
|
||
|
return this;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public interface ISequenced : IDirectedCollectionValue
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public class GuardedSequenced
|
||
|
{
|
||
|
ISequenced sequenced;
|
||
|
|
||
|
public IDirectedCollectionValue Test ()
|
||
|
{
|
||
|
return sequenced.Backwards();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class X
|
||
|
{
|
||
|
public static void Main ()
|
||
|
{ }
|
||
|
}
|