2015-06-19 42 views
-8

我知道如何將變量傳遞給過程,但是如何將變量返回給調用過程?例如,這是我的語法,在變量arr中沒有任何問題,但是如何將值nummmm返回到Main?請忽略空的sqlconnection &更新語句等,它們在我的實際語法中是有效的。來自方法的返回變量

namespace ConsoleTest 
{ 
    class Test 
    { 
    public static string SQLConnectionString = ""; 
    public static string updatestatement = null; 
    public static string[] arrArray; 
    public int 

    static void Main(string[] args) 
    { 
     arrArray = new string[3] { "1412", "1618", "1223" }; 
     foreach (string arr in arrArray) 
     { 
      runupdates(arr, out nummmm); 
     } 
    } 

    private static int runupdates(string arr, out int nummmm) 
    { 
     updatestatement = ""; 
     using (SqlConnection connection = new SqlConnection(SQLConnectionString)) 
     { 
      connection.Open(); 
      using (SqlCommand command = new SqlCommand(updatestatement, connection)) 
      { 
      command.CommandText = updatestatement; 
      int nummmm = command.ExecuteNonQuery(); 
      connection.Close(); 
      } 
     } 
    } 
    } 
} 

我編輯的代碼現在給出'不是所有代碼路徑返回值的編譯錯誤。

+0

@Shaharyar這是一個C#的例子,我從來沒有用過'out' –

+0

你知道嗎關鍵詞「無效」意味着..?如果你從來沒有使用'out',那麼google現在就來吧.. void意味着方法或過程沒有返回/不返回..但是你仍然可以通過使用'out'關鍵詞來欺騙它..更好開始閱讀和理解基礎知識,因爲如果有人給了你正確的方法簽名,你怎麼理解呢? – MethodMan

+6

你需要學習C#的基礎知識。 https://msdn.microsoft.com/en-us/library/1h3swy84 – SLaks

回答

1

只需使用函數本身來返回值。您不需要額外的輸出參數。

private static int runupdates(string arr) 
{ 
    updatestatement = ""; 
    using (SqlConnection connection = new SqlConnection(SQLConnectionString)) 
    { 
     connection.Open(); 
     using (SqlCommand command = new SqlCommand(updatestatement, connection)) 
     { 
     command.CommandText = updatestatement; 
     int nummmm = command.ExecuteNonQuery(); 
     connection.Close(); 
     } 
    } 
    return nummmm; 
} 
+1

這是返回一個*值*,而不是*變量*。巨大差距。 – Servy

+1

不是一個新的程序員... –

+1

@Servy OP甚至不知道返回一個值,可能是他問的相同,但不知道該怎麼問 – Shaharyar

-2

如果要從方法返回值,必須指明它。類型「void」意味着你的方法不會返回一個值。在你的情況下,如果你想返回一個int,改變類型「void」爲「int」,並添加一句話返回

+0

函數已經是int了。 –

相關問題