Here is another account of a very irritating experiance I had with the c# language. A guy from C really has to struggle with stupid non-geek compile errors. check this code. This was very correctly written for C. All i wanted to do was save my object code with duplicate code.
…
if (Request.QueryString[”CID”] != null)
CategoryID = Int32.Parse(Request.QueryString[”CID”].ToString());
else if(artwork_id>0)
{
CategoryID = Artwork.GetArtworkCategoryID(artwork_id);
   goto tr;
}
else
{
CategoryID = Artwork.GetCategoryID(ArtistID);
tr:
Server.Transfer(”work.aspx?AID=” + Request.QueryString[”AID”] +
“&CID=” +CategoryID + (debug?”&debug=true”:”"));
}
…
all that compiler said was error CS0159: No such label ‘tr’ within the scope of the goto statement. I do understand that jumping to other code is to be done carefully. you might skip some variable initialization or derive into some invalid stack. Having siad that, an average coder would know all that. Therefore, jumping to any code using goto should be very much allowed by default.


