我正在编写一段涉及大量数据和操作重复的代码,对我来说,尽可能减少这一点非常重要。对我来说,MSDN support doc意味着当我将类Foo
的字段设置为某个类Bar
的实例时,我将此设置为此实例的引用,而不是价值,这正是我想要做的。鉴于此功能对我来说有多重要(它会影响我的程序的运行时间),有人可以更明智地为我确认。
代码示例:
public class Foo
{
public Bar ChildBar {get;set;}
public void SetChildBarValue (int value)
{
this.ChildBar.Value = value;
}
}
public class Bar
{
public int Value {get;set;}
}
var foo1 = new Foo();
var foo2 = new Foo();
var bar = new Bar();
foo1.ChildBar = bar;
foo2.ChildBar = bar;
foo1.SetChildBarValue(1);
Console.WriteLine(foo2.ChildBar.Value);
我的问题是,WriteLine
会返回1
还是null
?
提前致谢。
答案 0 :(得分:3)
我的问题是,WriteLine会返回1还是null?
由于Bar
被声明为class
,因此是引用类型,并且您要将ChildBar
设置为指向同一个bar
的实例,导致bar
的引用分配,WriteLine
将打印1。
作为旁注 - 实际运行此代码会告诉你同样的事情。