Nybble, , . . ( 13.)
10
: . - , C# .
, , . , C# : .
, [ ]. [ ], , , . , , , , . , , . - .
.
:
_ this[int ] {
// , get {
// , .
}
II , set {
// , .
}
}
_ . , , , _. . , . int, , , , .
(.. ): get set. , , . , : . , , set , . get , . , set value, , .
|
|
, , , , . , Fail So f t Array, , , , . , . , . FailSof tArray , .
// .
Using System;
class FailSoftArray {
int[] a; //
public bool ErrFlag; //
// , public FailSoftArray(int size) { a = new irrt [size];
Length = size;
}
// FailSoftArray. public int this[int index] {
// get. get {
if (ok(index)) {
ErrFlag = false; return a[index];
} else {
ErrFlag = true; return 0;
}
}
// set. set {
. if(ok(index)) {
a[index] = value;
ErrFlag = false;
}
else ErrFlag = true;
}
}
// true, // , private bool ok(int index) {
if(index >= 0 & index < Length) return true; return false;
}
}
// , class FSDemo {
static void Main() {
FailSoftArray fs = new FailSoftArray(5); int x;
// .
Console.WriteLine(" ."); for(int i=0; i < (fs.Length * 2); i++) fs[i] = i*10;
for(int i=0; i < (fs.Length * 2); i++) {
x = fs[i];
if (x!= -1) Console.Write(x + " ");
Console.WriteLine ();
// .
Console.WriteLine(" ."); for(int i=0; i < (fs.Length * 2); i++) {
fs[i] = i * 10; if(fs.ErrFlag)
Console.WriteLine("fs[" + i + "] ");
}
for(int i=0; i < (fs.Length * 2); i++) { N
x = f s [ i ];
if(!fs.ErrFlag) Console.Write(x + " "); else
Console.WriteLine("fs[" + i + "] ");
}
}
}