【发布时间】:2013-05-07 19:16:03
【问题描述】:
如何让类型能够通过赋值进行初始化,如下所示:
public struct WrappedByte
{
private byte m_value;
}
//Usage:
WrappedByte x = 0xFF;
【问题讨论】:
标签: c# compiler-construction initialization variable-assignment
如何让类型能够通过赋值进行初始化,如下所示:
public struct WrappedByte
{
private byte m_value;
}
//Usage:
WrappedByte x = 0xFF;
【问题讨论】:
标签: c# compiler-construction initialization variable-assignment
您需要使用自定义隐式运算符。请注意,这不仅适用于结构。
public struct WrappedByte
{
private byte m_value;
public static implicit operator WrappedByte(byte b)
{
return new WrappedByte() { m_value = b };
}
}
还要注意,这不仅仅适用于初始化;这意味着您可以在任何需要WrappedByte 的位置提供byte。它还包括初始化以外的赋值、方法的参数等。
【讨论】: