如何通过赋值为类型提供初始化的能力,如下所示:
public struct WrappedByte
{
private byte m_value;
}
//Usage:
WrappedByte x = 0xFF;
答案 0 :(得分:6)
您需要使用自定义隐式运算符。请注意,这不仅适用于结构。
public struct WrappedByte
{
private byte m_value;
public static implicit operator WrappedByte(byte b)
{
return new WrappedByte() { m_value = b };
}
}
另请注意,这不仅适用于初始化;这意味着您可以在预期byte
的任何位置提供WrappedByte
。它还包括初始化以外的分配,方法参数等。