2

如何修复错误?

错误 23 在 goto 语句 H:\calismalarim\v2\Version 2\ro.ascx.cs 582 17 Version 2 范围内没有此类标签“Label_05C0”

if (this.PriceID == "")
{
    this.ddlSelectedPrices.Visible = false;
    this.lnkClosePrices.Visible = false;
    this.lblClosePrices.Visible = false;
    DataTable table2 = new DataTable();
    table2.Columns.Add("PriceID", Type.GetType("System.Int32"));
    table2.Columns.Add("PriceName", Type.GetType("System.String"));
    table2.Columns.Add("Count", Type.GetType("System.Int32"));
    int num3 = 1;
    while (str != "")
    {
        ds.Tables[0].DefaultView.RowFilter = str + " and " + this.method_6(Conversions.ToString(num3));
    Label_0547:
        if (ds.Tables[0].DefaultView.Count > 0)
        {
            table2.Rows.Add(new object[] { num3, this.method_5(Conversions.ToString(num3)), ds.Tables[0].DefaultView.Count });
        }
        num3++;
        if (num3 <= 12)
        {
            continue;
        }
        this.dlPrices.DataSource = table2;
        this.dlPrices.DataBind();
        if (this.dlPrices.Items.Count > 0)
        {
            this.divPrices.Visible = true;
            this.dlPrices.Visible = true;
            this.lblPrices.Visible = true;
        }
        return;
    Label_05C0:
        ds.Tables[0].DefaultView.RowFilter = this.method_6(Conversions.ToString(num3));
        goto Label_0547;
        int zz21z1a = 0;
    }
    goto Label_05C0;
    int zzz1f = 0;
}
4

3 回答 3

3

标签在while循环范围内,但您尝试在循环之外调用它。

你不能那样做。

要么确保您的标签与您的 goto 处于相同的词法范围内,要么更改您的代码 - 功能很好。

于 2013-02-14T22:13:39.073 回答
1

如果您在 IL 级别修改代码,这可以工作。例如,用假的 goto 语句编译它,然后在 DNSPY 中编辑代码并修改 goto。你可以用这种方式做各种奇怪而美妙的事情。

并不是说这是个好主意。

于 2019-09-15T03:32:08.770 回答
0
Label_05C0:
            ds.Tables[0].DefaultView.RowFilter = this.method_6(Conversions.ToString(num3));
            goto Label_0547;
            int zz21z1a = 0;
        }
        goto Label_05C0;
        int zzz1f = 0;

标签位于 while 循环的一侧,因此它仅存在于 while 语句的范围内。你正试图跳回那里......

使用 goto 很少是一个好主意。混合块结构代码和 goto 完全是一个坏主意。

Ps 你怎么期待那些 int zzz... 行被调用,你期待他们做什么?

你确定 goto 是一个不错的选择吗?

于 2013-02-14T22:31:33.427 回答