天天看点

索引器与泛型和接口

 索引器与泛型

class SampleCollection<T>

{

    private T[] arr = new T[100];

    public T this[int i]

    {

        get

        {

            return arr[i];

        }

        set

        {

            arr[i] = value;

        }

    }

}

索引器与接口

// Indexer on an interface:

public interface ISomeInterface

{

    // Indexer declaration:

    int this[int index]

    {

        get;

        set;

    }

}

// Implementing the interface.

class IndexerClass : ISomeInterface

{

    private int[] arr = new int[100];

    public int this[int index]   // indexer declaration

    {

        get

        {

            // Check the index limits.

            if (index < 0 || index >= 100)

            {

                return 0;

            }

            else

            {

                return arr[index];

            }

        }

        set

        {

            if (!(index < 0 || index >= 100))

            {

                arr[index] = value;

            }

        }

    }

}

class MainClass

{

    static void Main()

    {

        IndexerClass test = new IndexerClass();

        // Call the indexer to initialize the elements #2 and #5.

        test[2] = 4;

        test[5] = 32;

        for (int i = 0; i <= 10; i++)

        {

            System.Console.WriteLine("Element #{0} = {1}", i, test[i]);

        }

    }

}

继续阅读