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。它还包括初始化以外的任务,方法的参数等。