变量在当前上下文和无效参数中不存在

时间:2011-07-29 14:59:26

标签: c# visual-studio-2010

enter image description here

我正在尝试验证一个文本框。我已经验证了其他几个文本框,它们工作正常。这个有一些错误。 我的代码对我来说是正确的。有人请指出我的错误并告诉我为什么Visual Studio 2010会在当前上下文中提示无效参数和变量的错误:

7 个答案:

答案 0 :(得分:3)

在致电string errorMsg;之前,您需要在addTextBox_Validating函数中定义ValidAddress

答案 1 :(得分:1)

在将errorMsg变量用作out参数之前,需要先定义它。

string errorMsg;

答案 2 :(得分: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
    }
}

答案 3 :(得分:1)

您需要将字符串作为第二个参数传递给ValidAddress。尝试添加

string errorMsg = null;

作为addTextBox_Validating()的第一行

答案 4 :(得分:0)

您尚未声明errorMsg字符串。

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

}

在ValidAddress中,errorMsg字符串作为参数传递给函数,因此不会出现此问题。

答案 5 :(得分:0)

据我所见,errorMsg未在任何地方声明。

尝试通过为其添加声明来更改 addTextBox_Validating

e.g。

var errorMsg = string.Empty;

if (!ValidAddress(...

out变量需要在使用它的上下文中声明。

hth
艾伦。

答案 6 :(得分:-1)

errorMsg在哪里定义?看起来它作为参数发送到ValidAddress,因此addTextBox_Validating完全是一个不同的方法,无法访问它,因为errorMsg的作用域仅存在于ValidAddress中{1}}。长话短说,你还没有初始化你的变量。