[英]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.