I’m sorry if this thread will be considered as subjective, but my question is more on the technical side.
I’m working with C# in the Framework .Net 4.0. I spent a few years playing with C++ and I’ve received an education where variables that were not initialized got me a kick in the butt.
Today, each time I see a uninitialized variable in a C# snippet, I do shiver a little bit and I really cannot make up my mind if I should initialize them or not.
I’ve read many articles where people say that, some are initialized, others not (members vs local), I’ve read articles where people say that initializing vars in C# gets you in trouble with performance…
In my current application, I want to have good performance but before all, I need to avoid having stupid bugs because of variables that are uninitialized.
What is the best practice regarding this ?
Edit :
public MyClass
{
private int foo; // Is it initialized ? Do I have to ?
public void MyMethod()
{
int bar; // Is it initialized ? Do I have to ?
...
}
} // Is it a good practice to initialize every vars all the time or not ?
// Will I get troubles by not initializing those ?
// If I do initialize them, will I get performance slowdown ?
When you declare a reference type variable like instance of
SomeClass, it’s default value will benull. Your variable will get initialized once you allocate some memory for it using newOn the other hand value types are initialized when you declare them. For example
Well, it depends on scenario. For example when you declare a bool it’s default value is
false. But for reader’s understanding it’s better to explicitly dobool myBool = false. On the other hand if you have to pass a variable asoutto some method, initializing a variable is of no use because it is responsibility of method. It really depends on your scenario and practises you like to follow.If you are fine with default value(uninitialized value) then you won’t get in to trouble. But if your code expects some initialized value and your variable is not initialized then you might get into trouble.
Nope. If your app’s performance is really slow you should use some profiler to find out what is causing slow performance. Initializing variable is very unlikely to cause performance issue