是否可以通过调用实例来访问struct成员

时间:2014-09-01 08:14:29

标签: c# .net struct operators implicit-conversion

我有关于C#struct的问题。我通常使用类,通过struct,我可以覆盖=运算符以进行赋值。

就我而言,我有struct

public struct ObjectWrap<T>
{
    public T _value;

    public ObjectWrap(T value)
    {
        _value = value;
    }

    public static implicit operator ObjectWrap<T>(T value)
    {
        return new ObjectWrap<T>(value);
    }
}

(整个struct代码不在那里)

通过这样做,可以做这样的事情:

ObjectWrap<String> d = "My value";

但是,可以通过调用struct来访问我的struct值成员,例如

!String.IsNullOrWhiteSpace(d)

否则,我要做一个访问者,而且它并不多,人性化的#34;。

1 个答案:

答案 0 :(得分:0)

不确定。只需转动隐式运算符即可。顺便说一句,这也可以在课堂上发挥作用:

public static implicit operator T(ObjectWrap<T> value)
{
    return value._value;
}

此示例使用传入类型T作为返回值类型,因此这适用于T提供的每种类型ObjectWrapper<T>