Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以通过调用实例来访问结构成员_C#_.net_Struct_Operators_Implicit Conversion - Fatal编程技术网

C# 是否可以通过调用实例来访问结构成员

C# 是否可以通过调用实例来访问结构成员,c#,.net,struct,operators,implicit-conversion,C#,.net,Struct,Operators,Implicit Conversion,我有一个关于C#struct的问题。我通常使用类,通过结构,我可以重写赋值的=操作符 在我的例子中,我有一个struct: public struct ObjectWrap<T> { public T _value; public ObjectWrap(T value) { _value = value; } public static implicit operator ObjectWrap<T>(T valu

我有一个关于C#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
,可以访问我的
struct
值成员,例如

!String.IsNullOrWhiteSpace(d)

除此之外,我还得做一个访问器,它不太“人性化”。

当然。只需旋转隐式运算符。顺便说一下,这在课堂上也同样有效:

public static implicit operator T(ObjectWrap<T> value)
{
    return value._value;
}
public静态隐式运算符T(ObjectWrap值)
{
返回值。\u值;
}

此示例使用传入类型
T
作为返回值类型,因此对于
ObjectWrapper

隐式运算符提供的每个类型
T
也可以重载类。顺便说一句,您忘记隐藏您的类名
DbField
:-D。但是您可以定义一个隐式转换运算符。没问题。我把你的帖子改了一点。还修复了我遇到的一些代码问题。这将有助于未来的读者。如果您觉得有必要,请随时回滚。
public static implicit operator T(ObjectWrap<T> value)
{
    return value._value;
}