0

如何給類型通過分配來初始化,有的像以下的能力:通過賦值來初始化對象?

public struct WrappedByte 
{ 
    private byte m_value; 
} 

//Usage:  
WrappedByte x = 0xFF; 
+1

可能的重複:http://stackoverflow.com/questions/4537803/overloading-assignment-operator-in-c-sharp – ppetrov 2013-05-13 17:09:07

回答

6

您需要使用自定義的隱含操作。請注意,這不僅適用於結構。

public struct WrappedByte 
{ 
    private byte m_value; 

    public static implicit operator WrappedByte(byte b) 
    { 
     return new WrappedByte() { m_value = b }; 
    } 
} 

另外請注意,這不適只是初始化;這意味着您可以在任何需要WrappedByte的地方提供byte。它還包括初始化以外的任務,方法的參數等。