我目前正在使用隐式运算符从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:更新了代码。
答案 0 :(得分:0)
你应该能够很简单地完成它,因为你已经在课堂上实例化了它。
Class2 main = foo.Goo