2013-02-14 2 views
0

어떻게 수정합니까?goto 문 범위 내에 'Label_05C0'레이블이 없습니다.

오류 23 고토 문 H의 범위 내에서 그러한 레이블이없는 'Label_05C0': \ calismalarim \ v2를 \ 버전 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; 
} 
+3

내 제안 : 리팩토링하고 당신의 고토의 없애 버려! –

+0

내가 본 이후로 너무 오래 있었는데, 나는 그들이 무엇을하는지 잊었다! –

+0

이동하십시오! 나는 잠시 동안 본 최악의 코드 중 일부입니다. 헝가리 표기법,'goto', 마술 가치,'this'의 과도 사용, 매우 가능성있는 바퀴'Conversions.ToString (int)'... 아 ... 그것을 보는 행복! –

답변

3

label이 while 루프의 범위에 있지만 루프의 외부에서 이라고 해보려합니다.

당신은 그렇게 할 수 없습니다.

레이블이 same lexical scope에 있는지 확인하거나 코드를 변경하십시오. 기능이 좋습니다.

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가 좋은 선택 이었습니까?

+2

레이블의 이름과 변수 이름에 따라 디 컴파일러에서 나온 코드를 컴파일하는 것처럼 보입니다. – flarn2006