2012-09-19 134 views
2

是否有一个便利的过程来将属性“调用者”的值在下面的构造函数中分配给一行?便利初始化

public partial class SecurityPrompt : Form { 

    Form1 Caller { get; set; } 

    public SecurityPrompt(Form1 _caller) { 
     Caller = _caller; 
     InitializeComponent(); 
    } 
} 
+0

不是'Caller = _caller;'已经是单行吗? – dasblinkenlight

+0

你想从2行减少到1? –

+0

我想他是问有没有像C++的初始化列表(C#中没有这样的列表) –

回答

2

object initializer syntax,但创建构造函数,然后分配公共属性。如果你想使用它,你必须在这里重构你的构造函数。

使用对象初始化:

编译器处理由第一访问默认实例构造,然后通过处理部件初始化对象初始化。

如果您确实使用了这个属性,那么在创建构造函数之后才会设置属性。所以,如果你在构造函数中调用期望你的属性在那里的函数,它不会。记住这一点。

0

是否有方便的过程在构造函数中分配属性“来电”的值下面一行?

不。您当前的语法是在构造函数中分配属性的“标准”方法。没有捷径(如C++'s initialization lists或类似)。在C#中,它总是以内联方式在构造函数体中完成。