|
Yeah, although Java was the first language I've learned and I do still love it with all my heart, after I worked with .NET I've started to understand why people are moving to it.
I think VS2010 Pro is a beauty of an IDE. I didn't get 2011 yet, but from what I've read around here, people aren't really satisfied with it
|
|
|
|
|
|
Agreed - variable masking is a bad idea, it leads to some very hard to spot bugs.
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
In the code where the view get's cleared from the current model (i.e. when you want to save changes in the program but have everything cleared), I have found this little gem:
(Variable-Names changed to protect the innocent)
if(view != null)
{
SetUI(view);
myTree.Update(view);
}
else
{
MessageBox.Show("Error when saving, Model is lost in space");
}
As you'd assume, every change is lost when the view is null, and the user has no idea what just happened.
|
|
|
|
|
dakovinc wrote: and the user has no idea what just happened.
Of course they have! they know that the data he entered took the wrong path and ended up in a black hole!
I'm brazilian and english (well, human languages in general) aren't my best skill, so, sorry by my english. (if you want we can speak in C# or VB.Net =p)
|
|
|
|
|
Sentenryu wrote: Of course they have! they know that the data he entered took the wrong path and
ended up in a black hole!
Always Keep Smiling.
Yours Pankaj Nikam
|
|
|
|
|
Is that a web app? I hope someone dismisses that message box...
|
|
|
|
|
For god's sake!
Luckily, it isn't a web app!
|
|
|
|
|
It reminds me of an old term for a crashed program that 'went to east hyperspace':
1.hyperspace
A memory location that is far away from where the program counter should be pointing, especially a place that is inaccessible because it is not even mapped in by the virtual-memory system. “Another core dump — looks like the program jumped off to hyperspace somehow.” (Compare jump off into never-never land.) This usage is from the SF notion of a spaceship jumping into hyperspace, that is, taking a shortcut through higher-dimensional space — in other words, bypassing this universe. The variant east hyperspace is recorded among CMU and Bliss hackers.
At least artificial intelligence already is superior to natural stupidity
|
|
|
|
|
dakovinc wrote: the user has no idea what just happened
Do they ever have any idea?
|
|
|
|
|
Sadly, no. (or almost never)
This is especially true for the users of the program where this code came from.
|
|
|
|
|
I'd be looking for other related error messages:
MessageBox.Show("Danger Will Robinson");
MessageBox.Show("Never fear, Smith is here!");
|
|
|
|
|
Found this in code I wrote a long time ago. Not the stupidest code ever perhaps, but it's just, well, see for yourself.
size = 29;
if (width > 11 || height > 4)
{
size++;
if (width > 13 || height > 5)
{
size++;
if (width > 15 || height > 6)
{
size++;
if (width > 18 || height > 7)
{
size++;
if (width > 19 || height > 8)
{
size++;
if (width > 21 || height > 10)
{
SpreadCompressed(width, width > 21, height > 10, xpos, ypos);
}
else
{
Spread(width, 8, 7, xpos, ypos);
}
}
else
{
Spread(width, 9, 9, xpos, ypos);
}
}
else
{
Spread(width, 9, 10, xpos, ypos);
}
}
else
{
Spread(width, 11, 12, xpos, ypos);
}
}
else
{
Spread(width, 13, 14, xpos, ypos);
}
}
else
{
Spread(width, 15, 16, xpos, ypos);
}
|
|
|
|
|
I used to have a flash drive with code projects on it from my first semester in college. It was a unique set of code
Flash drive died though, and I never had a backup.
If it moves, compile it
|
|
|
|
|
This is a good example of even when there are a lot of nesting levels, the code can be formatted so that it is readable and understandable.
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]
|
|
|
|
|
Yes, and I can't remember why I wrote it this way. It should never even have happened in the first place.
|
|
|
|
|
So what's the alternative?
|
|
|
|
|
Well I could have done this:
if (width <= 11 && height <= 4)
{
size = 29;
Spread(width, 15, 16, xpos, ypos);
}
else if (width <= 13 && height <= 5)
{
size = 30;
Spread(width, 13, 14, xpos, ypos);
}
else if (width <= 15 && height <= 6)
{
size = 31;
Spread(width, 11, 12, xpos, ypos);
}
else if (width <= 18 && height <= 7)
{
size = 32;
Spread(width, 9, 10, xpos, ypos);
}
else if (width <= 19 && height <= 8)
{
size = 33;
Spread(width, 9, 9, xpos, ypos);
}
else if (width <= 21 && height <= 10)
{
size = 34;
Spread(width, 8, 7, xpos, ypos);
}
else
{
size = 34;
SpreadCompressed(width, width > 21, height > 10, xpos, ypos);
}
Not great either, but still better I would say. At least the width and height requirements are actually grouped together with what should happen if they're met, instead of in a weird inverted way moved as far apart as possible.
|
|
|
|
|
Perhaps a map with a key class for width and height, and a value class for the passed parameters. Use std::map::upper_bound() to find the element you're looking for....
then it'll be dynamic with no hard coding...
|
|
|
|
|
It's over 9,000!!!!!!
I assume you have been waiting for that.
|
|
|
|
|
harold aptroot wrote: code I wrote a long time ago You dare admit that here?
Although I must admit I've written something like five nested if's just today...
It's an OO world.
public class Naerling : Lazy<Person>{
public void DoWork(){ throw new NotImplementedException(); }
}
|
|
|
|
|
How about something along the lines of:
size = 29;
if(width > 11 || height > 4) size++;
if(width > 13 || height > 5) size++;
if(width > 15 || height > 6) size++;
if(width > 18 || height > 7) size++;
if(width > 19 || height > 8) size++;
if(width > 21 || height > 10) size++;
switch(size) {
case 29: Spread(width, 15, 16, xpos, ypos); break;
case 30: Spread(width, 13, 14, xpos, ypos); break;
case 31: Spread(width, 11, 12, xpos, ypos); break;
case 32: Spread(width, 9, 10, xpos, ypos); break;
case 33: Spread(width, 9, 9, xpos, ypos); break;
case 34: Spread(width, 8, 7, xpos, ypos); break;
case 35: SpreadCompressed(width, width > 21, height > 10, xpos, ypos); break;
}
|
|
|
|
|
There is no size 35 though, so I'm afraid case 34 would have to be a bit ugly..
|
|
|
|
|
Then I would amend it to:
size = 29;
if(width > 11 || height > 4) size++;
if(width > 13 || height > 5) size++;
if(width > 15 || height > 6) size++;
if(width > 18 || height > 7) size++;
if(width > 19 || height > 8) size++;
if(width > 21 || height > 10) size++;
switch(size) {
case 29: Spread(width, 15, 16, xpos, ypos); break;
case 30: Spread(width, 13, 14, xpos, ypos); break;
case 31: Spread(width, 11, 12, xpos, ypos); break;
case 32: Spread(width, 9, 10, xpos, ypos); break;
case 33: Spread(width, 9, 9, xpos, ypos); break;
case 34: Spread(width, 8, 7, xpos, ypos); break;
case 35:
SpreadCompressed(width, width > 21, height > 10, xpos, ypos);
size--;
break;
|
|
|
|
|
Is size used elsewhere?
I would have probably calculated a widthSize and a heightSize separately and then
size = max(widthSize, heightSize)
This approach basically replaces six || operators with one compare in the max() function.
You could have used an array, switch statement, collection or even if statements for calculating/looking up widthSize and heightSize.
switch would probably be most readable (and fastest for these datapoints).
|
|
|
|
|