与方法调用并发的新对象创建

时间:2015-02-05 13:36:41

标签: c# .net syntax

在下面的代码中,似乎在同时调用该对象上的方法(Resize)时创建了一个新对象:

Image<Bgr, Byte> img = new Image<Bgr, Byte>(fileNameTextBox.Text).Resize(400, 400, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR, true);

我所描述的是对正在发生的事情的正确解释吗? C#世界中这种用法的名称是什么?

1 个答案:

答案 0 :(得分:3)

不,它根本没有兼顾它。它创建对象,然后调用方法 - 然后将方法调用的结果分配给变量。所以它等同于:

var tmp = new Image<Bgr, Byte>(fileNameTextBox.Text);
Image<Bgr, Byte> img = tmp.Resize(400, 400, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR, true);

这里没有特定的名称 - 它让人联想到构建器模式,尽管从您的示例中不清楚Resize是否修改现有对象并返回{{ 1}},或者是否创建了一个 new 对象并执行了适当的调整大小操作。