繁体   English   中英

为类中的类的属性赋值

[英]Assign a value to a property of a class within a class

我有以下代码

class TopClass
{
    public string ClsProp1 { get; set; }
    public string ClsProp2 { get; set; }

    public SubClass ClsProp3 { get; set; }
}

class SubClass
{
    public string SCProp1 { get; set; }
    public string SCProp2 { get; set; }
}


class Program
{
    static void Main(string[] args)
    {

        Test.TopClass TCN = new Test.TopClass();

        TCN.ClsProp1 = "TCProp1--string value";
        TCN.ClsProp2 = "TCProp2--string value";
        TCN.ClsProp3.SCProp1 = "SCProp1--string value";
        TCN.ClsProp3.SCProp2 = "SCProp2--string value";

    }
}

我似乎无法弄清楚如何实例化TCN.ClsProp3.ScProp1和TCN.ClsProp3.ScProp2值。 我不断收到“Test.exe中发生类型'System.NullReferenceException'的未处理异常附加信息:对象引用未设置为对象的实例。” 错误信息。 原谅我的无知,我真的想从零开始学习OOP。

提前致谢

您需要先初始化ClsProp3对象,然后才能使用它。

TCN.ClsProp3 = new SubClass();

你也可以在TopClass构造函数中初始化它,如下所示:

class TopClass
{
    public TopClass()
    {
        ClsProp3 = new SubClass();
    }
    public string ClsProp1 { get; set; }
    public string ClsProp2 { get; set; }

    public SubClass ClsProp3 { get; set; }
}

学习时,最好选择一个好域名。 TopClassClsPropX不使一个很好的学习经验。

至于你原来的问题,启动调试器,看看ClsProp3等于什么。 请记住,不可能将任何内容分配给“虚无”,这在C#用语中是null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM