如何修复错误?
错误23在goto语句范围内没有此类标签'Label_05C0'H:\ calismalarim \ v2 \ Version 2 \ ro.ascx.cs 582 17版本2
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;
}
答案 0 :(得分:3)
答案 1 :(得分: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你是如何期待那些被调用的zzz ...行,以及你期望他们做什么?
你确定goto是一个不错的选择吗?
答案 2 :(得分:0)
如果您在IL级别修改代码,则可以使它起作用。例如,使用伪造的goto语句进行编译,然后在DNSPY中编辑代码并修改goto。您可以通过这种方式来做各种奇怪而美妙的事情。
这不是一个好主意。