goto loops
-
Do you use goto in C# ? Where do you find it usefull or not usefull ? i had never used goto in C# but now when i just saw that a collegue uses this very often, I start wondering.. :-? tell me...
This article/blog[^] Shows situations where goto statements can be used to greater effect than other soloutions although I must confess I can see better ways to code some of the examples, that the author ignores. I was always taught to avoid goto's at all costs and have always stuck to this advice, however, like you, I have noticed collegues use them a lot.
-
OK - to clarify. What you have asked here is more of a programming philosophy question than a programming question. Others ask these in the Lounge and get away with them so I don't see why you shouldn't. I have never encountered a situation in .NET where a goto makes my job easier. Generally, a well structured application with small, self-contained methods should have no need for a goto. When I see them, it's generally an indication that somebody has landed themselves in an architectural muddle and they can't see the way out of the morass. This is generally when they have loops nested within loops nested within loops. The way I tend to look at this, if you've got yourself this deep into loopfuggery, it's an indication that you are using the wrong loops.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
Never used it in c#.
-
Do you use goto in C# ? Where do you find it usefull or not usefull ? i had never used goto in C# but now when i just saw that a collegue uses this very often, I start wondering.. :-? tell me...
That you call them "goto loops" speaketh volumes. Like every other programming tool, the goto has its uses. It is mostly used underwater, by the things you use instead of gotos. It can also, like every other programming tool, be used stupidly by bad programmers.
I wanna be a eunuchs developer! Pass me a bread knife!
-
This article/blog[^] Shows situations where goto statements can be used to greater effect than other soloutions although I must confess I can see better ways to code some of the examples, that the author ignores. I was always taught to avoid goto's at all costs and have always stuck to this advice, however, like you, I have noticed collegues use them a lot.
Yep, I was taught to avoid gotos also cause they make the code harder to read and ifs, selects, whiles and fors can all get you the same results and they are easier to read. However I have noticed some of the newbies using gotos here (in my place of work) also. It appears they have come back into fashion. Maybe because they were eradicated so well that the newbies aren't being taught how bad code can get with injudicious use of gotos?
Pete
-
Do you use goto in C# ? Where do you find it usefull or not usefull ? i had never used goto in C# but now when i just saw that a collegue uses this very often, I start wondering.. :-? tell me...
-
Do you use goto in C# ? Where do you find it usefull or not usefull ? i had never used goto in C# but now when i just saw that a collegue uses this very often, I start wondering.. :-? tell me...
Every now rare once and a while (althought it has been probably close to a decade for me ;) ) it can be useful. The common clause is that it is probably better to analyze your code and see if it would not be cleaner and easier to read another way.
Rocky <>< Recent Blog Post: The Arrogant Apple!
-
Yep, I was taught to avoid gotos also cause they make the code harder to read and ifs, selects, whiles and fors can all get you the same results and they are easier to read. However I have noticed some of the newbies using gotos here (in my place of work) also. It appears they have come back into fashion. Maybe because they were eradicated so well that the newbies aren't being taught how bad code can get with injudicious use of gotos?
Pete
Maybe they are reading unoptimised reflector code. Goto is commonplace there.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
-
This article/blog[^] Shows situations where goto statements can be used to greater effect than other soloutions although I must confess I can see better ways to code some of the examples, that the author ignores. I was always taught to avoid goto's at all costs and have always stuck to this advice, however, like you, I have noticed collegues use them a lot.
Ok, surely the first and last examples here can be done using return in a try-finally block?
Pete
-
Do you use goto in C# ? Where do you find it usefull or not usefull ? i had never used goto in C# but now when i just saw that a collegue uses this very often, I start wondering.. :-? tell me...
No serious programmer uses a
goto
. EDIT (After the 1 vote)---------------- Okay - maybe we all do - when wegoto
the bathroom....45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001modified on Monday, July 5, 2010 10:22 AM
-
ok then... sorry for posting.. i give up.
Lucian-aSterX wrote:
i give up.
Why? You're not French...
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
NEVER, EVER use GoTo - It's generally very bad programming and makes the code harder to read. That goes for both C# and VB.NET.
While advice like this is doled out to inexperienced developers, once you reach a certain level of proficiency it becomes poor or useless advice. I was told by uni lecturers as I was doing my degree that inexperienced developers can try to use gotos as a means for everything, rather than thinking about more concise loop construct which is why they're advised to steer clear. However, this doesn't make the advice sound - it's more of a teaching aid to guide in the right direction. To give a specific example, using a goto as an exit clause in a set of nested 'for' loops is probably the most efficient way of forcing an early exit, and is probably the easiest to read. Goto is perfectly acceptably - just try not to overuse it.
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.
-
Ok, surely the first and last examples here can be done using return in a try-finally block?
Pete
-
While advice like this is doled out to inexperienced developers, once you reach a certain level of proficiency it becomes poor or useless advice. I was told by uni lecturers as I was doing my degree that inexperienced developers can try to use gotos as a means for everything, rather than thinking about more concise loop construct which is why they're advised to steer clear. However, this doesn't make the advice sound - it's more of a teaching aid to guide in the right direction. To give a specific example, using a goto as an exit clause in a set of nested 'for' loops is probably the most efficient way of forcing an early exit, and is probably the easiest to read. Goto is perfectly acceptably - just try not to overuse it.
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.
Did you vote him a 1?
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
Did you vote him a 1?
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001Yes - I scored the post in a way I saw fit and gave reasons in the response I posted. Which I believe is actually the polite way of doing things!
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.
-
:-D This is a discussion and I'm not claiming a try-finally block would be a better solution.
Pete
-
This article/blog[^] Shows situations where goto statements can be used to greater effect than other soloutions although I must confess I can see better ways to code some of the examples, that the author ignores. I was always taught to avoid goto's at all costs and have always stuck to this advice, however, like you, I have noticed collegues use them a lot.
pompeyboy3 wrote:
to greater effect than other soloutions although I must confess I can see better ways to code some of the examples
to greater effect than the other solutions he provided, but not greater than real good solutions. As you started to point out, you can write his example in perfectly good code without requiring to the goto instruction. IMHO, this blog entry is rather poor.
-
Yes - I scored the post in a way I saw fit and gave reasons in the response I posted. Which I believe is actually the polite way of doing things!
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.
Wow - looks like someone didn't agree with you, and didn't say why.
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
This article/blog[^] Shows situations where goto statements can be used to greater effect than other soloutions although I must confess I can see better ways to code some of the examples, that the author ignores. I was always taught to avoid goto's at all costs and have always stuck to this advice, however, like you, I have noticed collegues use them a lot.
Funny how no-one even the comments could come up with a really good alternative (I agree for simplicity, the && is approach is best). How would I do it?
bool Do(params Func<bool>[] args)
{
foreach (var a in args)
if (!a())
return false;
return true;
}
...if (Do(Step1, Step2, Step3, Step4, Step5, Step6, Step7))
Console.WriteLine("Brillant!");xacc.ide
IronScheme - 1.0 RC 1 - out now!
((λ (x) `(,x ',x)) '(λ (x) `(,x ',x))) The Scheme Programming Language – Fourth Edition -
Lucian-aSterX wrote:
i give up.
Why? You're not French...
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
Wow - looks like someone didn't agree with you, and didn't say why.
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001It's not something I'm going to lose any sleep over!
Sarchasm : The gulf between the author of sarcastic wit and the person who doesn't get it.