2012-10-18 69 views
0

從我的理解我可以有一個類型Foo自動將其自身轉換爲一個int時,它傳遞給一個方法期待一個int。我也可以做另一個方向嗎?即有一個int隱式地投射到Foo並且這個的定義也在foo雙向隱式鑄造?

我的理解可能不正確。

+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

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 }; 
    } 
}