Когда я посмотрел на исходный код, я увидел это:
i + ""
= String.Concat(object)
, который вызывает obj.ToString()
Есть еще один String.Concat(object)
.Так что это медленнее.
1-й способ) С Console.WriteLine это просто:
public static void WriteLine(String value)
{
Out.WriteLine(value);
}
https://referencesource.microsoft.com/#mscorlib/system/console.cs,5ac7c4fda643413b
Внутри него создается 1 буфер со значением + '\r \ n 'и вызовите .Write(char[], int, int)
только один раз.
2-й способ) Когда вы вызываете его с помощью int, он отличается.
public virtual void WriteLine(int value) {
Write(value);
WriteLine();
}
https://referencesource.microsoft.com/#mscorlib/system/console.cs,82d5745bf4a5ecc6
Таким образом, он вызывает Write(char[], int, int)
дважды.И это может быть такое замедление, но я не могу сказать наверняка.Это только подсказка, где проблема может быть.
РЕДАКТИРОВАТЬ:
Дополнительно, 2-й способ, он вызывает int.ToString(IFormatProvider)
, чтобы получить строковое представление числа, где естьдругие издержки, которые могут немного замедлить его, поскольку он может каждый раз получать экземпляр этого провайдера.https://referencesource.microsoft.com/#mscorlib/system/globalization/numberformatinfo.cs,9c4284b5db21c23a