0

我遇到了一个错误。尽管声明了变量(故障文本和用户名)错误仍然出现。谁能帮帮我吗?

- Use of Unassigned local variable "FailureText" 
- Use of Unassigned local variable "UserName"


protected void Login1_LoginError(object sender, System.EventArgs e)
{
    TextBox FailureText;
    TextBox UserName; 

    //There was a problem logging in the user
    //See if this user exists in the database
    MembershipUser userInfo = Membership.GetUser(UserName.Text); // errors appear here
    if (userInfo == null)
    {
        //The user entered an invalid username...
        //error appear here ( failuretext.text) 
        FailureText.Text = "There is no user in the database with the username " + UserName.Text;  
    }

谢谢 (:

4

3 回答 3

3

您已经声明了变量,但在尝试引用它们的属性之前,您还没有为它们分配任何东西。这就是消息的由来。但是,您遇到了更大的问题,因为它们代表 UI 控件,并且它们极不可能是函数中的局部变量。它们可能应该属于页面(或表单)而不是在本地声明。

于 2012-06-24T16:28:38.280 回答
0

关于编译器消息 - 看看这个链接

 TextBox FailureText; - you declared a variable, but it is not initialized. you might set it to null / a value / default() - but you must initialize it
 TextBox UserName; - the same

当您调用 UserName.Text - 编译器警告未初始化的UserName

于 2012-06-24T16:29:34.693 回答
0

如果您希望保持与目前相同的约定,那么要解决编译失败的问题,您需要先为这两个变量分配一个空值,然后再尝试引用它们。

像这样:

TextBox FailureText = null;
TextBox UserName = null;

如果这样做,您可能需要在尝试分配这些对象的属性时检查它们是否仍然为空。

正如上面的人所说,您不应该这样做,因为 UI 控件应该始终对表单本身是全局的。

于 2012-06-24T17:03:53.223 回答