使用 ValueInjecter,我经常发现自己在编写这样的代码:
var foo1 = new Foo().InjectFrom(foo2);
但是,出乎意料的是,这会导致 foo1 的类型为 Object,而不是 Foo。与
var foo1 = (new Foo()).InjectFrom(foo2);
和
Foo foo1 = new Foo().InjectFrom(foo2);
不会编译。这没什么大不了的,因为我可以轻松做到
var foo1 = (Foo)new Foo().InjectFrom(foo2);
或者
var foo1 = new Foo();
foo1.InjectFrom(foo2);
并且它们都按预期工作,但我很好奇。为什么第一种方法不起作用?