@ Тайс:
Вот быстрый тест:
public class ToStringTest
{
private object mString = "hello world!";
Stopwatch sw = new Stopwatch();
private List<long> ConvertToStringTimes = new List<long>();
private List<long> ToStringTimes = new List<long>();
private List<long> CastToStringTimes = new List<long>();
public ToStringTest()
{
for (int i = 0; i < 100000; i++)
{
sw.Start();
ConvertToString();
sw.Stop();
ConvertToStringTimes.Add(sw.ElapsedTicks);
sw.Reset();
sw.Start();
ToString();
sw.Stop();
ToStringTimes.Add(sw.ElapsedTicks);
sw.Reset();
sw.Start();
CastToString();
sw.Stop();
CastToStringTimes.Add(sw.ElapsedTicks);
sw.Reset();
}
Console.WriteLine("Average elapsed ticks after converting {0} strings",ConvertToStringTimes.Count);
Console.WriteLine("ConvertToString: {0} ticks", ConvertToStringTimes.Average() );
Console.WriteLine("ToString: {0} ticks", ToStringTimes.Average());
Console.WriteLine("CastToString: {0} ticks", CastToStringTimes.Average());
}
private string ConvertToString()
{
return Convert.ToString(mString);
}
public override string ToString()
{
return mString.ToString();
}
public string CastToString()
{
return (string) mString;
}
}
Результат:
Среднее количество прошедших тиков после преобразования 100000 строк
ConvertToString: 611,97372 тика
ToString: 586,51461 тиков
CastToString: 582,25266 тиков