【问题标题】:Initialize object by assignment?通过赋值初始化对象?
【发布时间】:2013-05-07 19:16:03
【问题描述】:

如何让类型能够通过赋值进行初始化,如下所示:

public struct WrappedByte
{
    private byte m_value;
}

//Usage:    
WrappedByte x = 0xFF;

【问题讨论】:

标签: c# compiler-construction initialization variable-assignment


【解决方案1】:

您需要使用自定义隐式运算符。请注意,这不仅适用于结构。

public struct WrappedByte
{
    private byte m_value;

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

还要注意,这不仅仅适用于初始化;这意味着您可以在任何需要WrappedByte 的位置提供byte。它还包括初始化以外的赋值、方法的参数等。

【讨论】:

    猜你喜欢
    • 2019-11-16
    • 2019-12-12
    • 2023-03-23
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2012-10-19
    相关资源
    最近更新 更多