这是一个愚蠢的错误:
List<Foo> fooList = new List<Foo>();
Foo f = new Foo();
while (something.Read()) {
f.Fill(something.GetRecord());
fooList.Add(f);
}
当然,我应该在循环内实例化一个新的 Foo 。
编译器可以在编译时检测到这种错误吗?
对于天真的眼睛,它看起来应该能够检测到这种行为(在循环中用相同对象的实例填充 List)。然后它应该发出一个警告,比如“你用同一个实例多次填充一个容器。”。
那么,我有多天真呢?你知道存在这样的语言吗?