85 lines
1019 B
C#
85 lines
1019 B
C#
|
|
||
|
class A {
|
||
|
double d1,d2;
|
||
|
public double this[double x] {
|
||
|
set {
|
||
|
d1 = x;
|
||
|
d2 = value;
|
||
|
}
|
||
|
get {
|
||
|
if (d1 == x) {
|
||
|
return d2;
|
||
|
}
|
||
|
return 0.0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class B : A {
|
||
|
double d1,d2;
|
||
|
public new double this[double x] {
|
||
|
set {
|
||
|
d1 = x;
|
||
|
d2 = value;
|
||
|
}
|
||
|
get {
|
||
|
if (d1 == x) {
|
||
|
return d2;
|
||
|
}
|
||
|
return 0.0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class C : B{
|
||
|
string s1,s2;
|
||
|
int i1,i2;
|
||
|
public string this[string x] {
|
||
|
set {
|
||
|
s1 = x;
|
||
|
s2 = value;
|
||
|
}
|
||
|
get {
|
||
|
if (s1 == x) {
|
||
|
return s2;
|
||
|
}
|
||
|
return "";
|
||
|
}
|
||
|
}
|
||
|
public int this[int x] {
|
||
|
set {
|
||
|
i1 = x;
|
||
|
i2 = value;
|
||
|
}
|
||
|
get {
|
||
|
if (i1 == x) {
|
||
|
return i2;
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
struct EntryPoint {
|
||
|
|
||
|
public static int Main (string[] args) {
|
||
|
C test = new C();
|
||
|
|
||
|
test[333.333] = 444.444;
|
||
|
if (test[333.333] != 444.444)
|
||
|
return 1;
|
||
|
|
||
|
test["a string"] = "another string";
|
||
|
if (test["a string"] != "another string")
|
||
|
return 2;
|
||
|
|
||
|
test[111] = 222;
|
||
|
if (test[111] != 222)
|
||
|
return 3;
|
||
|
|
||
|
System.Console.WriteLine ("Passes");
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
}
|