65 lines
738 B
C#
65 lines
738 B
C#
|
using System;
|
||
|
|
||
|
interface ITargetInfo
|
||
|
{
|
||
|
int TargetIntegerSize {
|
||
|
get;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
interface ITargetMemoryAccess : ITargetInfo
|
||
|
{
|
||
|
}
|
||
|
|
||
|
interface IInferior : ITargetMemoryAccess
|
||
|
{
|
||
|
}
|
||
|
|
||
|
interface ITest
|
||
|
{
|
||
|
int this [int index] {
|
||
|
get;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class Test : ITest
|
||
|
{
|
||
|
public int this [int index] {
|
||
|
get { return 5; }
|
||
|
}
|
||
|
|
||
|
int ITest.this [int index] {
|
||
|
get { return 8; }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class D : IInferior
|
||
|
{
|
||
|
public int TargetIntegerSize {
|
||
|
get { return 5; }
|
||
|
}
|
||
|
|
||
|
int Hello (IInferior inferior)
|
||
|
{
|
||
|
return inferior.TargetIntegerSize;
|
||
|
}
|
||
|
|
||
|
public static int Main ()
|
||
|
{
|
||
|
D d = new D ();
|
||
|
|
||
|
if (d.Hello (d) != 5)
|
||
|
return 1;
|
||
|
|
||
|
Test test = new Test ();
|
||
|
ITest itest = test;
|
||
|
|
||
|
if (test [0] != 5)
|
||
|
return 2;
|
||
|
if (itest [0] != 8)
|
||
|
return 3;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
}
|