我已经建立了一个非常简单的C#类(下面的代码),并已成功地对其属性运行set / get。但是我无法访问嵌套类。
这是该类的代码(或更确切地说,是它的简化)。
class TestClass
{
public string example { get; set; }
public NestedClass nestedclass { get; set; }
public class NestedClass
{
public string nestedExample { get; set; }
}
}
这是获取/设置属性的函数。我可以设置并获取
private void Button_Click_1(object sender, RoutedEventArgs e)
{
//initialize new TestClass
TestClass testclass = new TestClass();
//assign arbitrary value to testclass.example
testclass.example = "this works fine";
//TestLabel content is changed to "this works fine", no issues
TestLabel.Content = testclass.example;
//now assign a value to nestedExample
testclass.nestedclass.nestedExample = "this doesn't";
//this will return System.NullReferenceException: 'Object reference not set to an instance of an object.' How come?
TestLabel2.Content = testclass.nestedclass.NestedExample;
}
我希望上面的代码将testclass.nestedclass.nestedExample的值设置为“ this not”,但是由于某种原因,它将返回上面的错误。有人知道我哪里出问题了吗?
答案 0 :(得分:0)
您需要以某种方式对其进行初始化
示例
class TestClass
{
public string example { get; set; }
public NestedClass nestedclass { get; set; } = new NestedClass();
或
class TestClass
{
public string example { get; set; }
public NestedClass nestedclass { get; set; }
public TestClass ()
{
nestedclass = new NestedClass();
}
或在使用前将其初始化。
但是,当我们在这里时。
答案 1 :(得分:0)
您需要先实例化嵌套的类,然后再分配任何值。
testclass.nestedclass = new TestClass.NestedClass();
testclass.nestedclass.nestedExample = "this does now";