50 lines
502 B
C#
50 lines
502 B
C#
|
using System;
|
||
|
|
||
|
class A
|
||
|
{
|
||
|
public static int operator + (short x, A b)
|
||
|
{
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
public static int operator - (A a)
|
||
|
{
|
||
|
return -1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class B : A
|
||
|
{
|
||
|
public static int operator + (int x, B d)
|
||
|
{
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
public static int operator - (B b)
|
||
|
{
|
||
|
return 1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class C : B
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public class Test
|
||
|
{
|
||
|
public static int Main ()
|
||
|
{
|
||
|
var b = new B ();
|
||
|
short s = 3;
|
||
|
var res = s + b;
|
||
|
|
||
|
if (res != 1)
|
||
|
return 1;
|
||
|
|
||
|
var c = new C ();
|
||
|
if (-c != 1)
|
||
|
return 2;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
}
|