2012-09-19 362 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#中,它總是以內聯方式在構造函數體中完成。