2009年12月9日水曜日

int型、string型をそれぞれexplicitキーワード、implicitキーワードを使用し定義したSampleClass型に変換してみる。
using System;

class SampleClass
{
    // 変数の宣言
    int n;
    string s;

    public SampleClass(int n, string s)
    {
        this.n = n;
        this.s = s;
    }

    public void display()
    {
        Console.WriteLine(this.n);
        Console.WriteLine(this.s);
    }

    /* int型をexplicitキーワードを使用して
     * SampleClass型に変換 */
    public static explicit operator SampleClass(int n)
    {
        return new SampleClass(n, "explicit");
    }

    /* string型をimplicitキーワードを使用して
       SampleClass型に変換 */
    public static implicit operator SampleClass(string s)
    {
        return new SampleClass(1, s);
    }
}

class MainClass
{
    public static void Main()
    {
        SampleClass a = (SampleClass)10;
        // 出力値:10 explicit
        a.display();

        SampleClass b = "implicit";
        // 出力値:1 implicit
        b.display();
    }
}

0 コメント:

コメントを投稿