I\'ve been through a few questions over the network about this subject but I didn\'t find any answer for my question, or it\'s for another language or it doesn\'t answer totally
Well, your variables i
and prevSpec_OilCons
, if not used anywhere will be optimized away, but not your loop.
So if your code looks like:
static void Main(string[] args)
{
int[] TestRunTime = { 1, 2, 3 };
int i = 0;
for (int j = 0; j < TestRunTime.Length; j++)
{
}
double prevSpec_OilCons = 0;
Console.WriteLine("Code end");
}
under ILSpy it will be:
private static void Main(string[] args)
{
int[] TestRunTime = new int[]
{
1,
2,
3
};
for (int i = 0; i < TestRunTime.Length; i++)
{
}
Console.WriteLine("Code end");
}
Since the loop has couple of statements, like comparison and increment, it could be used for implementing somewhat short delay/wait period. (although not a good practice to do so).
Consider the following loop, which is an empty loop, but it will take a lot of time to get executed.
for (long j = 0; j < long.MaxValue; j++)
{
}
The loop in your code, is not a dead code, as far as dead code is concerned, the following is a dead code, and will be optimized away.
if (false)
{
Console.Write("Shouldn't be here");
}
The loop, will not even be removed by the .NET jitters. Based on this answer