2009年12月28日月曜日

operatorキーワードを使用して、true,false演算子をオーバーロードしてみる。

using System;


class SampleClass
{
    int n, m;
    public SampleClass(int n, int m)
    {
        this.n = n;
        this.m = m;
    }
    // true演算子のオーバーロード
    public static bool operator true(SampleClass a)
    {
        return (a.n == a.m);
    }
    // fale演算子のオーバーロード
    public static bool operator false(SampleClass a)
    {
        return (a.n != a.m);
    }
}


class MainClass
{
    public static void equalTest(SampleClass a)
    {
        if (a)
        {
            Console.WriteLine("等しい");
        }
        else
        {
            Console.WriteLine("等しくない");
        }
    }


    public static void Main()
    {
        SampleClass a = new SampleClass(1, 1);
        SampleClass b = new SampleClass(1, 2);


        // 出力値:等しい
        equalTest(a);
        // 出力値:等しくない
        equalTest(b);
    }
}

0 コメント:

コメントを投稿