2012年4月16日月曜日

開発環境

  • Microsoft Windows 7 Home Premium (OS)
  • Microsoft Visual C# 2010 Express Edition (IDE)
  • 言語: C#

独習C# 第3版 ハーバート・シルト (著) エディフィストラーニング株式会社 矢嶋聡 (監修, 翻訳) の第9章(Cインターフェイス、構造体、列挙型)の理解度チェック1、2、3、4、5、6を解いてみる。

7.

コード

using System;

public interface IFailSoftArray
{
    int Length { get; }
    int this[int index] { get; set; }
}

public class FailSoftArray : IFailSoftArray
{
    int[] a;
    public bool ErrFlag;
    public FailSoftArray(int size)
    {
        a =new int[size];
        Length = size;
    }

    #region IFailSoftArray
    public int Length { get; private set; }
    public int this[int index]
    {
        get
        {
            if (ok(index))
            {
                ErrFlag = false;
                return a[index];
            }
            else
            {
                ErrFlag = true;
                return 0;
            }
        }
        set
        {
            if (ok(index))
            {
                a[index] = value;
                ErrFlag = false;
            }
            else ErrFlag = true;
        }
    }
    #endregion
    private bool ok(int index)
    {
        if (index > 0 && index < Length)
        {
            return true;
        }
        return false;
    }
}

class Tester
{
    public void Run()
    {
        FailSoftArray fs = new FailSoftArray(5);
        int x;
        for (int i = 0; i < fs.Length; i++)
        {
            fs[i] = i * 10;
        }
        for (int i = 0; i < fs.Length; i++)
        {
            x = fs[i];
            if (x != -1)
            {
                Console.Write("{0} ", x);
            }
        }
        Console.WriteLine();
    }
    static void Main()
    {
        Tester t = new Tester();
        t.Run();
    }
}

入出力結果(Console Window)

0 10 20 30 40
続行するには何かキーを押してください . . .

0 コメント:

コメントを投稿