使用未分配的局部变量

时间:2012-06-24 16:20:23

标签: c#

我遇到了一个错误。尽管声明变量(failturetext和userName)仍然出现错误。谁能帮帮我吗?

- 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;  
    }

谢谢(:

3 个答案:

答案 0 :(得分:3)

您已声明变量,但在尝试引用其属性之前尚未为它们分配任何内容。这是消息的起源。但是,你遇到了更大的问题,因为它们代表了UI控件,它们在函数中不太可能是局部变量。它们可能应该属于页面(或表单),而不是在本地声明。

答案 1 :(得分:0)

关于编译器消息 - 请查看此link

 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

答案 2 :(得分:0)

如果您希望保持与目前相同的约定,那么为了解决编译失败的问题,您希望在尝试引用它们之前先将两个变量分配为空值。

像这样:

TextBox FailureText = null;
TextBox UserName = null;

如果执行此操作,则可能需要在尝试分配这些对象的属性时检查它们是否仍为空。

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