繁体   English   中英

如何返回类的属性而不是类本身?

[英]How to return a property of the class instead of the class itself?

我目前正在使用隐式运算符将Class从Class转换为Class2

但是我想做的是,每当我引用foo (Class<Class2>) ,我都希望返回Goo(Class)以便我可以直接访问它的公共属性,而不必强制转换首先将其转换为新变量。

换句话说,我希望当我访问Class<Class> ,我想返回Goo。

我知道我可能无法正确解释,因此请随时在评论部分提问,以便我可以尝试更好地填写我的意思。 提前致谢!

class Class<T> where T : new()
{
    public T Goo;

    public Class() { Goo = new T(); }

    public static implicit operator T(Class<T> Loo)
    {
        return Loo.Goo;
    }
}

class ClassX
{
    public byte[] SharedData;

    public ClassX() { }
}

class Class2 : ClassX
{
    public byte Data;

    public Class2() { }
}

class Class3 : ClassX
{
    public string Data;

    public Class3() { }
}

class Program
{
    static void Main(string[] args)
    {
        Class<Class2> foo = new Class<Class2>();
        Class2 poo = foo;

        foo.Data = 0xFF; // Error - I want this to work, tho.
        poo.Data = 0xFF; // Works - Not what I want to use.

        System.Console.ReadLine();
    }
}

编辑1:更新了代码。

您应该能够非常简单地完成此操作,因为您已经在类中实例化了它。

Class2 main = foo.Goo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM