我需要从结构内访问包含的类对象。结构有没有办法访问其中包含类的"此"成员?
我已经尝试将其传递到结构中,但是显然它不起作用,因为在字段初始化时,我无法访问包含类中的"此"关键字。我也不想在使用包含类的构造函数中传递"此"。我需要能够在字段初始化期间将其传递或在结构内进行处理。
我已经提到了一些类型的报道,但不确定要去哪里。
我要完成的工作的一般思想是:
public class Test
{
internal StructType<Test> _fieldName = new StructType(this);
}
public struct StructType<ParentT>
{
public StructType(ParentT parent)
{
_parent = parent;
}
internal ParentT _parent;
}
您不能将this
用于字段初始化,因此您必须在构造函数中初始化。类似:
public class Test
{
internal StructType<Test> _fieldName;
public Test()
{
_fieldName = new StructType<Test>(this);
}
}
public struct StructType<ParentT>
{
public StructType(ParentT parent)
{
_parent = parent;
}
internal ParentT _parent;
}
至于"包含类对象",C#中没有这样的特殊概念。如果您希望一个对象保存对另一个对象的引用,则添加字段的属性并将其指向子对象。如果您想让子对象知道父母的知识,那么您必须通过将父母的引用给子女(例如在构造函数中)来明确地做到这一点。