gpt4 book ai didi

c# - 在另一个对象中分配和调用对象属性

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:54 24 4
gpt4 key购买 nike

我需要在如下所示的对象中创建子属性(突出显示),我想像下面那样一次性完成。除了创建单独的对象并将其附加到主对象。

但是没有赋值,求助

   Test oTest=new oTest();
oTest.Prop1=100;
***oTest.Sub.SubProp3="10";***

类定义如下,

public  class Test 
{
public int Prop1{ get; set; }
public int Prop2{ get; set; }

private Subtest _sub = null;

public Subtest Sub {
get
{
return (_sub != null) ? _sub : new Subtest();
}
set {
_sub = value;
}
}
}

public class Subtest
{
public int SubProp1{ get; set; }
public int SubProp2{ get; set; }

private string _SubProp3;

public string SubProp3
{
get { return _SubProp3; }
set { _SubProp3= value; }
}
}

最佳答案

几个选项:

  • 更改您的字段初始值设定项:

    private Subtest _sub = new Subtest();
  • 在构建时设置一个新值:

    public Test()
    {
    _sub = new Subtest();
    }
  • 获取时设置一个新值:

    public Subtest Sub {
    get
    {
    if(_sub == null)
    _sub = new Subtest();
    return _sub;
    }
    set {
    _sub = value;
    }
    }

第三个选项的主要好处是子项的创建被延迟到属性被检索时。缺点是具有副作用的 getter 可能会产生问题。

关于c# - 在另一个对象中分配和调用对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23744613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com