|
Those points that are the hotspots of my current working are CTRL-F2-bookmarked anyway.
And if I only want to know the type of a variable, Intellisense would open that little tooltip for me.
I all boils down to being simply personal style, I guess.
Failure is not an option - it's built right in.
|
|
|
|
|
I would agree.
I consider it good form to reduce as much as possible the scope of a variable. I do not want the IDE suggesting local variables that should not be used at that point.
Paul
|
|
|
|
|
in the old vb6 days ctrl-f2 used to take you to a definition and ctrl-shift-f2 used to take you back to where you were before.
I'm sure this must be implemented in .net but i've never found out how to do it. I used to use it all the time.
Russ
|
|
|
|
|
I agree requiring such is not varying friendly, and is a real pain int the <blank>.
Here are some thoughts to consider when writing you code.:
1) In C you can wrap a variable declaration in a scope and if that scope is not entered then no space is allocated on the stack for it (saves cycles and memory). This applies to languages other than C, including C#.
2) In C++ you can wrap a class (variable) declaration in a scope and if that scope is not entered then the constructor and destructor are not called.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence."Edsger Dijkstra
|
|
|
|
|
PIEBALDconsult wrote: I prefer to have all the declarations in one place (the top) so in C# I still do that by choice.
I hate that. Although it probably doesn't help that most of the functions i see doing it are hundreds of lines long, making it a real chore to track down declarations and ensure variables are being used correctly.
----
It appears that everybody is under the impression that I approve of the documentation. You probably also blame Ken Burns for supporting slavery.
--Raymond Chen on MSDN
|
|
|
|
|
Yeah, if you can't the declaration then your method is too big (size matters). On the other hand, if they're all at the top, they're easy to find.
|
|
|
|
|
Lol I think I was using C# for about 4 months before I realized I didn't have to do it. Its a tough choice though, all declarations at the top make it much easier for someone to come in and read your code, whereas its easier to code when I can make a variable whenever I need one. You can definitely look at my code and see the days on which I was lazy, because there is nothing in our coding guidelines about where to put variable declarations.
|
|
|
|
|
ewwww!
Declare the variables as close to their first use as possible.
I have spoken.
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Well I started programming in Java and we were told to put all our declarations up the top (which i think is the Java coding standard), and i like it this way. Makes all your declarations easy to find.
However, sometimes i need a variable at that scope which will only be used further down, so i put it there. It all comes down to the scope of you're variable and where it's used in that scope as to where it should go
Customer in computer shop: "Can you copy the Internet onto this disk for me?"
|
|
|
|
|
Actualy it arose from some code i wrote in .Net.
I wrapped a generic HttpSession collection in something that exposed typed properties for each of the items it contained, And was told it was a total waste of my time.
T
-------------------------------
Carrier Bags - 21st Century Tumbleweed.
|
|
|
|
|
Tristan Rhodes wrote: And was told it was a total waste of my time.
Why?
CleaKO
"I think you'll be okay here, they have a thin candy shell. 'Surprised you didn't know that.'" - Tommy (Tommy Boy) "Fill it up again! Fill it up again! Once it hits your lips, it's so good!" - Frank the Tank (Old School)
|
|
|
|
|
Because the general concencus was that "It's the most pointless piece of code" they had ever seen.
:S
-------------------------------
Carrier Bags - 21st Century Tumbleweed.
|
|
|
|
|
I'd have to see the code.
|
|
|
|
|
<br />
public class SessionWrapper<br />
{<br />
<br />
private HttpSessionState session;<br />
<br />
<br />
public SessionWrapper()<br />
{<br />
session = HttpContext.Current.Session;<br />
}<br />
<br />
public string UserName<br />
{<br />
get{return (string)session[SE_USER_NAME];}<br />
set{session[SE_USER_NAME] = value;}<br />
}<br />
<br />
public int? LastPurchase<br />
{<br />
get{return (int?)session[SE_LAST_PURCHASE];}<br />
set{session[SE_LAST_PURCHASE] = value;}<br />
}<br />
<br />
<br />
}<br />
<br />
I'm actualy working on a code generator to build stuff like that for me, but at the time it was written manualy.
My argument was its a strongly typed wrapper that exposes other developers to exactly what they need, what type it is, and hides the constants.
T
-------------------------------
Carrier Bags - 21st Century Tumbleweed.
|
|
|
|
|
Makes sense to me.
A similar thing I do is with ExecuteScalar() , which returns object which then (usually) requires a test for null and a cast, and setting a default value if null. I wrote a wrapper like public virtual T ExecuteScalar<T>(T IfNull){...} to handle the cast. Any time I'm writing a scalar query and don't have to test for null and/or do a cast I save time, the code is more readable too.
Usually, spending the time to encapsulate such common tasks will pay off.
"A stitch in time saves nine."
|
|
|
|
|
Well i spent a few months crusading for sensible coding practices, and now i've given up. The other day i was told to remove it, re-centralise all the constants and simply use Session[AppConstants.CONST_NAME] to access everything.
-------------------------------
Carrier Bags - 21st Century Tumbleweed.
|
|
|
|
|
Glad I'm in a small IT department and have free reign on what I write.
|
|
|
|
|
I'm in a small IT department too, that was the CTO and Senior Developer pulling rank on my design decision. :S
(I'm leaving in a week anyway )
T
-------------------------------
Carrier Bags - 21st Century Tumbleweed.
|
|
|
|
|
I just spent the day (working from home) writing a wrapper for NumericUpDown that is generic and will take any of the built-in numerics, hide the actual decimal, and handle the casting so I don't have to.
Ugly as Hillary, but it works.
|
|
|
|
|
Maybe it was just the code.
Strong typing is a good way to control up front what type of information you are looking for rather than waiting for it to hit the database or a flat file and finding out later it isnt what it should be.
CleaKO
"I think you'll be okay here, they have a thin candy shell. 'Surprised you didn't know that.'" - Tommy (Tommy Boy) "Fill it up again! Fill it up again! Once it hits your lips, it's so good!" - Frank the Tank (Old School)
|
|
|
|
|
|
While converting an existing internal application from vb6 to c# i came accross the following :
'Reusable code -- Cut from here --
do some work here
'Reusable code -- Cut to here --
So you can guess what happens when you change something in that code block
http://sourceforge.net/projects/banshee32
|
|
|
|
|
Ummm... no? I'm guessing either nothing or something catastrophic.
|
|
|
|
|
PIEBALDconsult wrote: something catastrophic
Yes if you don't copy&paste modifications of that so called "reusable" code to all places where it was "reused".
"Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus
"Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe
|
|
|
|
|
Ah! A Visual Studio Code snippet!
|
|
|
|