【发布时间】:2016-10-28 01:13:54
【问题描述】:
我有一个非常简单的层次结构:1 个接口由几个类继承,看起来与此类似,但缺少一些属性:
public interface Test
{
List<double> Numbers { get; set; }
double Result { get; set; }
}
public class A : Test
{
public List<double> Numbers { get; set; } = new List<double>();
public double Result { get; set; }
}
public class B : Test
{
public List<double> Numbers { get; set; } = new List<double>();
public double Result { get; set; }
}
这是我想要实现的示例代码:
A a = new A();
B b = new B();
a.Numbers.Add(b.Result);
Console.WriteLine(a.Numbers.Last());
b.Result = 50;
Console.WriteLine(a.Numbers.Last());
输出
0
0
问题是在第 5 行我正在更改 b.Result 的值,但我想在包含 b.Result 先前状态的 a.Numbers 列表中反映此更改,我该怎么做?
【问题讨论】:
-
public List<DoubleByRef> Numbers { get; set; } = new List<DoubleByRef>();我很好奇这条线的作用。在我这边,由于这一行,它无法编译。 -
@vivek 它确实在 C# 6 中编译。这是一个名为 Property Initialization 的新功能。查看 C# 6 的特性:msdn.microsoft.com/en-us/magazine/dn802602.aspx
-
@user3185569 谢谢,我不知道这一点。很快就会在 c#6.0 上工作。
标签: c# list class properties