.
10 20 30 40
.
fs[5]
fs[6]
fs[7]
fs[8]
fs[9]
10 20 30 40 fs[5]
fs[6]
fs[7]
fs[8]
fs[9]
. . .
public int this[int index] {
, int. index. , (public), .
get.
get {
if (ok(index)) {
ErrFlag = false; return a[index];
} else {
ErrFlag = true; return 0;
get , , . ok (), true, , _ false. , , . , , . FailSof tArray ErrFlag . . ( 13 C# , .)
set, .
set {
if(ok(index)) {
a[index] = value;
ErrFlag = false;
}
else ErrFlag = true;
}
index ok () , , value. true ErrFlag. , value , . ( ) .
, get set, . , , get, set.
. , , . , FailSof tArray double. double .
|
|
// FailSoftArray.
Using System;
class FailSoftArray {
int[] a; //
public bool ErrFlag; //
// , public FailSoftArray(int size) { a = new int[size];
Length = size;
}
// int 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;
}
}
/* FailSoftArray.
. */ public int this[double idx] {
// get. get {
Int index;
// .
if((idx - (int) idx) < 0.5) index = (int) idx;
else index = (int) idx + 1;
if(ok(index)) {
ErrFlag = false; return a[index];
} else {
ErrFlag = true; return 0;
}
}
// set. set {
Int index;
// .
if((idx - (int) idx) < 0.5) index = (int) idx;
else index = (int) idx + 1;
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);
// fs. for(int i=0; i < fs.Length; i++) fs[i] = i;
// // int double .
Console.WriteLine("fs[1]: " + fs[1]);
Console.WriteLine("fs[2]: " + fs[2]);
Console.WriteLine("fs[1.1]: " + fs[l.l]);
Console.WriteLine("fs[1.6]: " + fs[1.6]);
}
}