Search on the blog

2014年7月8日火曜日

C#入門(10)拡張メソッド

 拡張メソッド(Extension Method)を使うと、既存のクラスにインスタンスメソッドを追加する(したように見せかける)ことが出来る。

 これはなかなか面白い。
intに、Negate、Add、ToBinaryという拡張メソッドを定義してみた。
ポイントは、thisというキーワードをつけること。
using System;

public static class Extentions
{
    public static int Negate(this int value)
    {
        return -value;
    }

    public static int Add(this int value, int x)
    {
        return value + x;
    }

    public static string ToBinary(this int value)
    {
        string ret = string.Empty;
        while (value > 0)
        {
            ret = (value & 1).ToString() + ret;
            value >>= 1;
        }

        return ret;
    }

}

public class Sample
{
    public static void Main (string[] args)
    {
        new Sample().run();
    }

    public void run() 
    {
        int x = 10;
            
        Console.WriteLine("{0}", x.Negate());
        Console.WriteLine("{0}", x.Add(100));
        Console.WriteLine("{0}", 1000.ToBinary());
    }

}

0 件のコメント:

コメントを投稿