2011-07-29 40 views
0

enter image description here變量不當前環境的和無效的論據存在

我想驗證一個文本box.I已經驗證了幾個其他的文本框和他們的工作fine.This其中有一定的誤差。 我的代碼看起來正確的me.Someone請您指​​出我的錯誤,告訴我爲什麼Visual Studio 2010的提示是無效的參數和變量的錯誤不在當前環境:

+3

閱讀上如何使用'out':http://msdn.microsoft.com/en-us/library/t3c3bfhx(v=vs.80).aspx –

+1

您還沒有在addTextBox_Validating方法中聲明errorMsg。你的代碼不正確,它只是錯誤的。 –

+0

你應該首先聲明出變量... –

回答

3

您需要addTextBox_Validating功能定義string errorMsg;打電話之前ValidAddress

0

您還沒有宣佈ERRORMSG字符串。

private void addTextBox_Validating (object sender, CancelEventArgs e) 
{ 
    string errorMsg = ""; 
    ...etc 

} 

在ValidAddress中,ERRORMSG字符串到函數作爲參數傳遞,這樣就不會出現這個問題。

1

你需要用它作爲out參數之前定義的變量ERRORMSG。

string errorMsg; 
-1

哪裏errorMsg定義?它看起來像它在發送作爲參數ValidAddress,所以addTextBox_Validating,是一個不同的方法完全不能夠訪問它,因爲errorMsg的作用範圍僅在ValidAddress存在。長話短說,你還沒有初始化你的變量。

1

Read up on how to use out

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

class OutExample 
{ 
    static void Method(out int i) 
    { 
     i = 44; 
    } 
    static void Main() 
    { 
     int value; 
     Method(out value); 
     // value is now 44 
    } 
} 
0

據我所知,errorMsg沒有在任何地方聲明。

嘗試通過添加聲明它

例如改變addTextBox_Validating

var errorMsg = string.Empty; 

if (!ValidAddress(... 

out變量需要在使用它的上下文中聲明。

心連心
艾倫。

1

您需要將字符串作爲第二個參數傳遞給ValidAddress。嘗試並添加

串ERRORMSG = NULL;

爲addTextBox_Validating()的第一行