2010-03-09 20 views
1

我有一個函數使用輸出參數來返回多個值給調用者。我想在函數中對它們進行初始化,但我不確定這是否是一個壞主意,因爲您不知道何時調用函數會立即更改值。調用者可能會認爲函數返回後,如果它所做的任何操作都不起作用,則這些值將是調用者初始化的值。在函數中使用輸出參數時,在函數中初始化它們是否好習慣?

對我來說在函數中初始化可以嗎?

例子:

public static void SomeFunction(int ixID, out string sSomething) 
{ 
    sSomething = ""; 
    sSomething = something(ixID); 

    if (sSomething = "") 
    { 
     somethingelse(); 
     sSomething = "bar" 
    } 
} 

回答

4

是的 - 帶出參數必須在返回前指定它。

雖然作爲out參數傳遞變量,無需之前被傳遞初始化,調用方法是需要該方法返回到之前分配一個值

雖然你不需要在函數的最上面初始化它們爲空值。您可以在知道它們時分配這些值。在你的例子中,第一行不需要,因爲你分配給第二行的out參數。

0

我敢肯定的答案是肯定的,你應該初始化它們的功能,因爲,因爲我是塗鴉在我的Q中的例子,Visual Studio中抱怨說,我必須返回前分配sSomething

相關問題