出于某种原因,我不想初始化一个对象,然后用两行分配值,我希望它只用一行完成,这就是我现在正在做的事情,
ObjectA oA = new ObjectA();
oA = Mapper.Map<ObjectA>(someDBRow);
我可以简短地说明,
new ObjectA() oA = Mapper.Map<ObjectA>(someDBRow);
答案 0 :(得分:10)
这是尝试看起来像逻辑意义的东西完美无缺的情况之一。
ObjectA oA = Mapper.Map<ObjectA>(someDBRow);
或者如果您愿意,可以让编译器找出类型:
var oA = Mapper.Map<ObjectA>(someDBRow);
当你这样做时
ObjectA oA = new ObjectA();
oA = Mapper.Map<ObjectA>(someDBRow)
发生的事情如下:
在第一行中,您创建一个名为oA
的变量,并将ObjectA
的实例放入其中。
然后,在第二行中,您丢弃使用new
关键字创建的实例,并在变量中添加一个全新的实例。这太浪费了。