在用于构造对象的静态方法中使用“this”

时间:2014-03-25 20:29:18

标签: c# constructor lambda static-methods

这就是我的意思。

我有一个带有类似构造函数的类:

Class() : base(GetConstructorArgument1(), GetConstructorArgument2())
{
}

因为尽可能在基础调用中创建参数会非常麻烦和粗糙。必要时,这两种GetConstructorArgument方法都是静态的。

GetConstructorArgument2()创建一个lambdas数组。在那些lambdas中,我想做“这个”,我正在构建的对象。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:5)

根据定义,这些方法必须在构造this之前运行。这就是他们必须是静态方法的原因。因此,没有真正的方法来访问其中的this

真的没有办法做你正在描述的事情。

答案 1 :(得分:0)

  

这些GetConstructorArgument方法都必须是静态的。

     

我想在"这"上工作,这是我正在构建的对象。

您不能同时执行这两项操作 - 如果方法是静态的,则无法使用this。静态方法属于类,而不属于实例,因此没有实例可供使用。