0

私が理解していることFooから、intを期待するメソッドに渡されるときに、型が自動的にintにキャストされるようにすることができます。他の方向にもできますか?つまり、intが暗黙的に自分自身をキャストしFoo、この定義もfooにあるのですか?

私の理解は間違っているかもしれません。

4

2 に答える 2

2

あなたはできる。

class Foo
{
    public Foo(int value)
    { 
        this.Value = value; 
    }

    public int Value { get; set; }

    // ImplicitSample -> int
    public static implicit operator int(Foo input)
    {
        return input.Value;
    }

    //  string -> ImplicitSample
    public static implicit operator Foo(int input)
    {
        return new Foo(input);
    }
}

この記事のサンプルは、私が説明できるよりもよくそれを示します:http: //msdn.microsoft.com/en-us/library/z5z9kes2.aspx

于 2012-10-18T14:09:08.403 に答える
1

はい、できます。

public class Foo
{
    public int Value { get; set; }

    public static implicit operator int(Foo foo)
    {
        return foo.Value;
    }
    public static implicit operator Foo(int value)
    {
        return new Foo() { Value = value };
    }
}
于 2012-10-18T15:08:54.740 に答える