Last night a couple of users posted some code snippets with a common inefficiency related to
Console.Write
. I don't mean to belittle these users' skills, but rather to speak out about whoever is teaching them.
The relevent snippets are: Console.Write(j.ToString());
and Console.Write(counter.ToString() + (innerloop + 1).ToString() + ",");
Yes, the code works as expected, but do you see my concern about inefficiency?
The first one isn't as bad as the second; it can be reduced to: Console.Write(j);
because the Write will perform the ToString()
anyway so rather than saving effort, you've increased it.
The second one is more of a concern, I recommend: Console.Write("{0}{1}," , counter , innerloop + 1);
I hope you'll agree that using the overload that allows the Format (http://msdn.microsoft.com/en-us/library/8a7aswa4.aspx[^]) makes the code more readable. But it is also more efficient because it avoids a number of intermediate strings.
Many classes provide Write and WriteLine methods; Console and TextWriter are just two, and there's also String.Format and StringBuilder.AppendFormat -- all of these allow the use of a format and I suggest you use it. This (http://msdn.microsoft.com/en-us/library/26etazsy.aspx[^]) should provide some background on formatting.
So, if you are teaching .net, please show your students more than one overload of a method. If you are a student, please investigate all the methods and overloads a class provides; not only what a teacher, a book, or a tutorial demonstrates. If you are using Visual Studio (and you probably are) use Intellisense to see what options you have; use the right tool for the right job.