如何定义变量以供各处使用

时间:2013-02-19 14:53:57

标签: c#

根据下面的代码,在获得一些值(newrev,newreview)并输入变量之后,我需要将它们放在标签中(“some text”+ newrev)。但我有问题(newrev)在当前的背景下不存在。

Label1.Text = "Review Number:" + newReview + "(for preparing of Rev." + newrev+")";

protected void ddlProjectDocument_SelectedIndexChanged(object sender, EventArgs e)
{
    _DataContext = new EDMSDataContext();

    var x = ddlProjectDocument.SelectedValue;

    var MaxRev = (from rev in _DataContext.tblTransmittalls
                  where rev.DocID.ToString() == ddlProjectDocument.SelectedValue
                  select  rev.REV).Max();

    if (MaxRev == null)
    {
        var newRev = 0;

    }

    else
    {

        var newRev = Convert.ToInt32(MaxRev) + 1;

    }

    var MaxReview = (from rev in _DataContext.tblFiles
                  where (rev.DocId.ToString()==ddlProjectDocument.SelectedValue)&&   
                        (rev.Rev.ToString()==MaxRev)
                  select rev.Review).Max();

    if (MaxReview == null)
    {
        var newReview = 1;
    }

    else
    {    
        var newReview = Convert.ToInt32(MaxReview) + 1;
    }

    Label1.Text = "Review Number:" + newReview + "(for preparing of Rev." + newrev+")";
}

4 个答案:

答案 0 :(得分:2)

在您的函数开头定义newRevnewReview,如下所示:

protected void ddlProjectDocument_SelectedIndexChanged(object sender, EventArgs e)
{
    _DataContext = new EDMSDataContext();
    int newRev;
    int newReview;

然后当你想使用它们时,不要写var newReview = ...(声明一个新变量)而是删除var ......例如:

if (MaxReview == null)
{
    newReview = 1;
}

差异: 声明的每个变量都有一个 Scope ,这决定了它对程序其余部分的可见性。在您的情况下,newReview仅在if语句中已知,因此当您尝试在外部引用它时,它就不再存在。

答案 1 :(得分:1)

您需要在newRev声明之外声明if

int newrev;
if(MaxRev == null)
    newRev = 0;
else
    newRev = Convert.ToInt32(MaxRev) + 1;

答案 2 :(得分:1)

C#不是JavaScript,你应该少用“var”...... 您正在

中定义newRev
if (MaxRev == null)
{
    var newRev = 0;
}

在这里定义

protected void ddlProjectDocument_SelectedIndexChanged(object sender, EventArgs e)
{
     _DataContext = new EDMSDataContext();
     var newRev = 0;
     ....
}

答案 3 :(得分:1)

这是因为你在各种if语句中声明newRev,在外层声明它:

int newRev;
if (MaxRev == null)
{
    newRev = 0;

}