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

时间:2015-08-24 09:47:47

标签: c# class casting operator-keyword implicit

我目前正在使用隐式运算符从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:更新了代码。

1 个答案:

答案 0 :(得分:0)

你应该能够很简单地完成它,因为你已经在课堂上实例化了它。

Class2 main = foo.Goo