【发布时间】:2021-03-11 11:46:25
【问题描述】:
在C#中有什么方法可以初始化一个对象而不需要初始化他的属性来使用它们?
我发现自己将 json 对象映射到类中,我想知道这样做是否效率低下:
Class1 object1 = new Class1 ();
object1 .Name = new Class2 ();
object1 .Name.Content = "name";
我不想为了代码清晰而使用初始化程序来避免类似:
Class1 obj1 = new Class1 ()
{
Name = new Class2()
{
Content = "name"
}
};
这看起来不错,但是我必须使用的模型通常很大并且有很多层,如果我使用初始化器,最终会变成一个无法读取的集群。
我无法更改收到的模型,因此简化模型也不是一种选择。
我有什么办法可以做这样的事情:
Class1 object1 = new Class1 ();
object1.Name.Content = "name";
那会自动隐式实现Name = new Class2()?
允许我避免 Name is not initialized 异常。我知道我可以做自己的构造函数并在其中初始化它的属性,但是已经完成了很多代码,并且不再可行。
如果不可能,我对任何可以帮助我减少一些代码初始化属性的替代方法感兴趣。
【问题讨论】:
-
你的 json 库不处理这个吗?
-
Name = new Class2()- 你可以在Class1的构造函数中做到这一点。