鉴于这两个类:
public class class1
{
public class2 class2parameter { get; set; }
}
public class class2
{
public class1 class1parameter { get; set; }
}
我可以像这样创建class1的实例:
var myclass1 = new class1()
{
class2parameter = new class2()
};
但是这样做,是否可以将class2的class1parameter
设置为等于我当前正在创建的class1的实例?
我不能这样做:
var myclass1 = new class1()
{
class2parameter = new class2()
{
class1parameter = myclass1
}
};
因为"不能使用本地变量' myclass1'在宣布之前#34;
有没有比这更好的方法:
var myclass1 = new class1()
{
class2parameter = new class2()
};
myclass1.class2parameter.class1parameter = myclass1;
}
我更愿意在一次调用中创建并填充class1和class2。
答案 0 :(得分:3)
当你说"一个单一的电话"无论如何,这并不是真的发生在引擎盖下。但是,更简洁的方法是:
var myclass1 = new Class1();
var myclass2 = new Class2();
myclass1.class2parameter = myclass2;
myclass2.class1parameter = myclass1;
在我看来,这比许多嵌入式语句更容易阅读/理解。
答案 1 :(得分:1)
你可以这样做:
var myclass2 = new class2() { class1parameter = new class1() };
var myclass1 = class2.class1parameter;
class1.class2parameter = class2;
答案 2 :(得分:0)
你已经拥有的答案很好。你不需要更好的方法。
如果你想让它看起来更加对称,你可以这样做
var myclass1 = new class1();
var myclass2 = new class2();
myclass1.class2parameter = myclass2;
myclass2.class1parameter = myclass1;