C#独習という本を使って勉強しているのですが、以下の文でコンパイルエラーが起きてしまいます。
教本と見比べて調べてみましたが原因がわかりませんでした・・・
以下の文が原因だと思うのですが、ご教示の程よろしくお願い致します。
public int Get(int index){
if(ok(index))return a[index];
return errval;
}
また以下がエラー内容です
エラー 1 名前 'ok' は現在のコンテキスト内に存在しません。 行21 列12
エラー 2 名前 'ok' は現在のコンテキスト内に存在しません。 行27 列8
C#独習 P205より
/フェイルソフトな配列をしようして
実行時エラーを防ぐ/
using System;
class FailSoftArray{
private int []a;//配列の参照
private int errval;//エラー時に返す値
public int Length;//Lengthはpublic /*配列のサイズとエラー時の戻り値を コンストラクタ引数として渡す*/ public FailSoftArray(int size,int errv){ a=new int[size]; errval=errv; Length=size; } //与えられた添え字の位置にある要素の値を返す public int Get(int index){ if(ok(index))return a[index]; return errval;
}
//与えられた添え字一の要素に値を代入する、失敗したらfalseを返す
public bool Put(int index,int val){
if(ok(index)){
a[index]=val;
return true;
}
return false;
}
}
//フェイルソフトな配列を使用する
class FSDemo
{
static void Main(){
FailSoftArray fs =new FailSoftArray(5,-1);
int x;
//エラーを表示しない Console.WriteLine("Fail quietly."); for(int i=0;i<(fs.Length*2);i++) fs.Put(i,i*10); for(int i=0;i<(fs.Length*2);i++){ x=fs.Get(i); if(x!=-1)Console.Write(x+" "); } Console.WriteLine("");
//エラーを表示する
Console.WriteLine("\nFail with error reports.");
for(int i=0;i<(fs.Length2);i++)
if(!fs.Put(i,i10))
Console.WriteLine("Index"+i+"out-of-bounds");
for(int i=0;i<(fs.Length*2);i++){ x=fs.Get(i); if(x !=-1)Console.Write(x+" "); else Console.WriteLine("Index"+i+"out-of-bounds"); } }
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。