|
Brisingr Aerowing wrote: Intellisense is not all that intelligent
Still, it's come a long way since VS 6.0 when you had to type (or paste) all your variable names. I've been there recently and kept scrolling the mouse wheel, waiting for something to happen!
"Go forth into the source" - Neal Morse
|
|
|
|
|
Oldest VS version I've used is 2008.
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
Ouch, 20 mins? Never looked at the stack trace when you got the exception?
Wout
|
|
|
|
|
You don't get a stack trace with a StackOverflowException. The application just quits.
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
|
Nope, I had a similar issue a while ago. The VS debugger just gives up with a StackOverflow error which is terrible. 20mins is admirable, I spent half a day learning from this experience.
|
|
|
|
|
Maybe I'm a super ninja, but I only takes me a few minutes finding them. Turn on break on exceptions, and if that's too late you can usually pause the program after the cpu goes to 100% for a few secs, and voila you got your stack trace. Has worked for years for me.
Wout
|
|
|
|
|
On my machine it happens in less than a second. So no time to break the debugger.
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
I'm having both ninja skills and a magic core i7 then, sweet.
Wout
|
|
|
|
|
Lesson learnt: Do not use Intellisense for anything other than saving a few keystrokes.
|
|
|
|
|
Foothill wrote: class MyObject
Calling a class MyObject is a bit weird.
You could call it MyClass or perhaps something more meaningful like <code> NumberImpl or something?
|
|
|
|
|
Change your language to VB.NET. Has same capabilities as C#, better debugger, better intellisense and is NOT case sensitive
You can write the property without having the variable spelled out. And without getter or setter.
Public ReadOnly Property Number as Integer is all you need.
|
|
|
|
|
Sinisa Hajnal wrote: better debugger, better intellisense How is it better?
If the brain were so simple we could understand it, we would be so simple we couldn't. — Lyall Watson
|
|
|
|
|
My last use of C# was about a year ago so if something changed I apologize for the comment.
I didn't lost the joke icon. I use both languages and prefer VB.NET because of those three reasons (case insensitive, intellisense, debugger)
Yes, VB.NET is case INsensitive. If I try to declare variable v and variable V in the same scope it will say it is already defined. In C# this is legal as these are two different variable names.
Intellisense is better because it fills end of block automatically and it shows only items from your context not all loaded options. And fill most of the property and other stuff (true, partly because VB needs more text to code).
|
|
|
|
|
You probably lost the 'joke' icon...
I would like to know in what way the debugger and the intellisense is better?
And VB is NOT case-insensitive - the IDE only fixes your cases after you wrote the name down the first time (and this happens also in C# now)...
As for the properties...
public int Number { get; private set; }
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
|
Or, with C# 6:
public int Number { get; } = 42;
public int Number { get; }
public YourClass()
{
Number = 42;
}
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Quote: In this post, we will demonstrate how you can use Google Sign-In with your backend.
Really?
|
|
|
|
|
Well a lot of people use twitter with their backend...
|
|
|
|
|
I have a code where I need to get an exclusive lock on a file. It goes something like this:
try
{
}
catch(IOException ex)
{
if(ex.HResult == 0x80070020)
{
}
else
{
throw;
}
}
Looked good so I tested and it didn't work at all. So I debugged it and what i saw was:
ex.HResult 0x80070020 int
ex.HResult == 0x80070020 false bool
There is something wrong about the value 0x80070020. So I tried to declare a constant:
const int lockedFileHResult = 0x80070020;
And there it was: Cannot implicitly convert type 'uint' to 'int'. Of course because that is actually a negative number but the compiler doesn't know that so it cannot fit it into an integer. Next time I'll be extra careful with hex literals.
|
|
|
|
|
And how about 0x80070020u ?
|
|
|
|
|
It was an uint, and the problem was that I was comparing that to and integer. The integer value is -2147024864 but there is no way to declare that in hex. Hex value always translates to positive number which is 2147942432 in this case. The hex view in debugger fooled me.
Edit: ok there is a way thanks John.
|
|
|
|
|
|
That's nice trick with unchecked. Thanks for sharing. I eventually used decimal format, it's just a number after all.
|
|
|
|
|
My 2 cents: do not use that magic number, declare it as a constant and comment it with the meaning. Believe me, this is one of the very few good practices that is ALWAYS a good practice.
Magic numbers are tempting because they are fast to code in... and a hell to figure out.
GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver
"When you have eliminated the JavaScript, whatever remains must be an empty page." -- Mike Hankey
"just eat it, eat it"."They're out to mold, better eat while you can" -- HobbyProggy
|
|
|
|