a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
83 lines
869 B
C#
83 lines
869 B
C#
using System;
|
|
|
|
interface IA
|
|
{
|
|
int Add(int i);
|
|
}
|
|
|
|
interface IB
|
|
{
|
|
int Add(int i);
|
|
}
|
|
|
|
interface IC : IA, IB {}
|
|
|
|
interface IE : ICloneable, IDisposable {
|
|
void doom ();
|
|
}
|
|
|
|
class D : IC, IB
|
|
{
|
|
int IA.Add (int i) {
|
|
return 5;
|
|
}
|
|
|
|
int IB.Add (int i) {
|
|
return 6;
|
|
}
|
|
}
|
|
|
|
class E: IE, IC {
|
|
public E() {
|
|
}
|
|
public void doom () {
|
|
return;
|
|
}
|
|
public Object Clone () {
|
|
return null;
|
|
}
|
|
public void Dispose () {}
|
|
int IA.Add (int i) {
|
|
return 7;
|
|
}
|
|
|
|
int IB.Add (int i) {
|
|
return 8;
|
|
}
|
|
}
|
|
|
|
class C
|
|
{
|
|
static int Test(IC n) {
|
|
IA a = (IA) n;
|
|
if (a.Add(0) != 5)
|
|
return 1;
|
|
|
|
if (((IA)n).Add(0) != 5)
|
|
return 1;
|
|
|
|
if (((IB)n).Add(0) != 6)
|
|
return 1;
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
static void Test2(IE ie) {
|
|
ie.doom ();
|
|
ie.Clone();
|
|
ie.Dispose ();
|
|
}
|
|
|
|
public static int Main()
|
|
{
|
|
D d = new D();
|
|
E e = new E();
|
|
Test (e);
|
|
Test2 (e);
|
|
|
|
return Test (d);
|
|
}
|
|
}
|
|
|