|
0bx wrote: it returns the list to be used in an other function
But the calling function already has the list, as it was passed in as a parameter, so it does not need to be returned since it already exists at the location it would be returned to. I suppose returning it could make for shorter syntax, but not in the case you have shown.
|
|
|
|
|
I wonder, why u had to use recursion/goto at all:
protected void Page_Load(object sender, EventArgs e)
{
var Stuff = loadStuff();
}
private List<Node> loadStuff()
{
var Stuff = new List<Node>();
do
{
foreach (Node thing in Node.GetCurrent().Children)
{
Stuff.Add(thing);
}
Stuff = ShuffleNodeList(Stuff);
}
while (blablabla);
return Stuff;
}
|
|
|
|
|
On the no need for recursion and getting rid of the goto, can I add only doing a single shuffle:
protected void Page_Load(object sender, EventArgs e)
{
List<Node> Stuff = loadStuff();
}
private List<Node> loadStuff()
{
List<Node> Stuff = new List<Node>();
do {
foreach (Node thing in Node.GetCurrent().Children)
{
Stuff.Add(thing);
}
} while (Stuff.Count < 100 && Stuff.Count > 0))
return ShuffleNodeList(Stuff);
}
Nice, self contained and easy to follow.
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
Okay, I knew about the "While" loop, but I didn't know you can do it like this.
Giraffes are not real.
|
|
|
|
|
Chuckle! I think a lot of us do the same, when the occasion arises. I certainly do. Of course, there's no stigma involved in the practice, as long as you remember to test your replacement code thoroughly. Right? Right?
(As it happens, I also do it to my old, already-published fiction...which causes my readers a bit of concern when they discover it! Well, at least with fiction the "debugging" is less onerous.)
|
|
|
|
|
Gah! You needed that goto for the "Goto Hell" Achievement!
I remember when goto and gosub/return were the ONLY way to get around in your program flow, how times have changed!
|
|
|
|
|
|
0bx wrote: foreach (Node thing in Node.GetCurrent().Children)
{
Stuff.Add(thing);
}
Others have commented on the outer looping constructs. Regarding the inner foreach loop, I'd just get rid of it:
Stuff.AddRange(Node.GetCurrent().Children);
Cheers.
|
|
|
|
|
What if Stuff.Count never exceeds 100 items? Both versions seem like infinite loops.
Recursion would be superior here because it will at least blow the call stack in a reasonable time frame vs. waiting for the application container (IIS?) to kill the non-responsive thread.
I usually include a safety valve for that kind of code:
int maxReps = 100;
blalbalba && (maxReps-- > 0)
I always use safety valves when writing code that "should" converge to an answer.
|
|
|
|
|
How about?:
protected void Page_Load(object sender, EventArgs e)
{
List<Node> Stuff = new List<Node>();
do {
foreach (Node thing in Node.GetCurrent().Children)
Stuff.Add(thing);
} while (Stuff.Count < 100 && Stuff.Count > 0))
Stuff = ShuffleNodeList(Stuff);
}
|
|
|
|
|
Journalists of Bangladesh Asked to police "when are you going to catch the criminal."
Police ob Bangladesh answered that when they will be 100% confirm.
Then the journalist asked "What do you mean by 100% confirm"
Police department answered:
When someone will give the detail description how they murdered those Journalist couple in-front of Journalists then they will be 100% confirm.
FÚck, I born this shîtty country
modified 16-Feb-12 1:17am.
|
|
|
|
|
|
its a programming forum dude,
even though its a shame
|
|
|
|
|
This is the original code:
DateTime dtInput;
DateTime.TryParse(txtInputDate.Text, out dtInput);
document.InputDate = dtInput;
Lets do a change request:
* Input date always will be the current date.
DateTime dtInput;
DateTime.TryParse(DateTime.Now.ToString(), out dtInput);
document.InputDate = dtInput;
What is wrong with these people? They start coding and stop thinking?
|
|
|
|
|
I think the best part of this one is that even the original code is broken – because it's not checking the result of TryParse and assigning a sensible default value, if the input string wasn't in a valid format, you get (DateTime)0 which is almost certainly not what they want (and will cause things further down the line to break in subtle ways).
|
|
|
|
|
The original code has a infallible validation using Javascript.
It never fails.
Except when you change you server locale, or disable javascript, oh sh*t, I remember now, I had fixed this too.
|
|
|
|
|
sergio_ykz wrote: infallible validation using Javascript
that was a nice one
|
|
|
|
|
sergio_ykz wrote: infallible validation using Javascript
var pope = new Pope();
pope.setExCathedraMode(true);
var inquisition = pope.createInquisition();
var result = inquisition.interrogate($("form"));
if (result.isHeretical)
pope.excommunicate($("form"));
pope.setExCathedraMode(false);
|
|
|
|
|
|
On the other hand, it makes it easier to go back to the original someday. :p
|
|
|
|
|
I have often written a change request with the expectation that it will get switched back to the original when the user realizes that it isn't really what they want. However, I comment out the old line(s) and and new code, not try to shove a square peg into a round hole.
Just because the code works, it doesn't mean that it is good code.
|
|
|
|
|
sergio_ykz wrote: They start coding and stop thinking? Yeah, they still don't get all that multithreading stuff.
Greetings - Jacek
|
|
|
|
|
Maybe they were thinking of the Mayan calendar. Pretty soon DateTime.Now will not parse.
|
|
|
|
|
This[^] VS 2010 issue had been finally fixed and shipped with a SP1.
Horror: Someone had revealed it...
At least it was found in commentaries...
Greetings - Jacek
|
|
|
|
|
But what was even worse, they had to release a hot fix for SP1 as it caused more issues than it fixed !!
#VisualStudio2010WorstEver
|
|
|
|