76 lines
670 B
C#
76 lines
670 B
C#
|
using System;
|
||
|
|
||
|
interface IList
|
||
|
{
|
||
|
int Count ();
|
||
|
}
|
||
|
|
||
|
interface ICounter
|
||
|
{
|
||
|
int Count { set; }
|
||
|
}
|
||
|
|
||
|
interface IListCounter: IList, ICounter
|
||
|
{
|
||
|
}
|
||
|
|
||
|
interface IA
|
||
|
{
|
||
|
int Value ();
|
||
|
}
|
||
|
|
||
|
interface IB : IA
|
||
|
{
|
||
|
new int Value { get; }
|
||
|
}
|
||
|
|
||
|
interface IC : IB
|
||
|
{
|
||
|
new int Value { get; }
|
||
|
}
|
||
|
|
||
|
interface IBB : IList, ICounter
|
||
|
{
|
||
|
}
|
||
|
|
||
|
interface ICC : IBB
|
||
|
{
|
||
|
}
|
||
|
|
||
|
interface IM1
|
||
|
{
|
||
|
void Add (int arg);
|
||
|
}
|
||
|
|
||
|
interface IM2 : IM1
|
||
|
{
|
||
|
int Add (int arg, bool now);
|
||
|
}
|
||
|
|
||
|
class Test
|
||
|
{
|
||
|
public static void Main ()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
static void Foo (IListCounter t)
|
||
|
{
|
||
|
t.Count ();
|
||
|
}
|
||
|
|
||
|
void Foo2 (IC b)
|
||
|
{
|
||
|
int i = b.Value;
|
||
|
}
|
||
|
|
||
|
void Foo3 (ICC c)
|
||
|
{
|
||
|
c.Count ();
|
||
|
}
|
||
|
|
||
|
void Foo4 (IM2 im2)
|
||
|
{
|
||
|
im2.Add (2);
|
||
|
}
|
||
|
|
||
|
}
|