访问结构内包含类对象的访问



我需要从结构内访问包含的类对象。结构有没有办法访问其中包含类的"此"成员?

我已经尝试将其传递到结构中,但是显然它不起作用,因为在字段初始化时,我无法访问包含类中的"此"关键字。我也不想在使用包含类的构造函数中传递"此"。我需要能够在字段初始化期间将其传递或在结构内进行处理。

我已经提到了一些类型的报道,但不确定要去哪里。

我要完成的工作的一般思想是:

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#中没有这样的特殊概念。如果您希望一个对象保存对另一个对象的引用,则添加字段的属性并将其指向子对象。如果您想让子对象知道父母的知识,那么您必须通过将父母的引用给子女(例如在构造函数中)来明确地做到这一点。

最新更新