C# 嵌套对象属性
Posted
技术标签:
【中文标题】C# 嵌套对象属性【英文标题】:C# nested object properties 【发布时间】:2015-10-25 00:32:06 【问题描述】:您好,我正在 C# 中使用返回对象的嵌套属性进行一些测试,但我遇到了对象引用异常。
我希望能够访问嵌套属性中的数组,但在当前上下文中,我可以看到我没有在属性中实例化任何新对象。
这就是基本问题出现的地方...在这一切的中间我应该在哪里声明一个“新”对象实例?我什至需要在“foo”类或“bar”类中声明和新的对象引用吗?
namespace CustomProperties_TEST
class Program
public foo[] Blatherskite get; set;
static void Main(string[] args)
Program myProgram = new Program();
myProgram.Blatherskite[0].CustomProperty1[0].CustomProperty2 = 999999999;
myProgram.Blatherskite[1].CustomProperty1[0].CustomProperty2 = 999999999;
foreach (var item in myProgram.Blatherskite)
Console.WriteLine(item.CustomProperty1[0].CustomProperty2);
class foo
private bar[] customevariable1;
public bar[] CustomProperty1
get return customevariable1;
set customevariable1 = value;
class bar
private int customintvariable2;
public int CustomProperty2
get return customintvariable2;
set customintvariable2 = value;
【问题讨论】:
【参考方案1】:您可能需要执行以下操作,因为数组默认初始化为 null
。
static void Main(string[] args)
Program myProgram = new Program();
// This is your missing initialization
myProgram.Blatherskite = new foo[2]
new fooCustomProperty1 = new bar[2]new barCustomProperty2 = 1,new barCustomProperty2 = 2
, new fooCustomProperty1 = new bar[2]new barCustomProperty2 = 3,new barCustomProperty2 = 4;
myProgram.Blatherskite[0].CustomProperty1[0].CustomProperty2 = 999999999;
myProgram.Blatherskite[1].CustomProperty1[0].CustomProperty2 = 999999999;
foreach (var item in myProgram.Blatherskite)
Console.WriteLine(item.CustomProperty1[0].CustomProperty2);
使用数组意味着您必须设置它们的大小。如果您想要更大的灵活性,请使用List
,然后您可以简单地向其中添加项目。
【讨论】:
这太棒了。我知道我错过了其中一个街区。但是搜索嵌套属性并没有产生多少。一个新手问题,但我希望这可以帮助像我这样的其他人。谢谢。 很高兴它有帮助。如果您觉得它有帮助,您可以投票并标记为已回答。继续编码:)以上是关于C# 嵌套对象属性的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch 返回的嵌套属性未映射到 C# 类