Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
void Main()
{
var times = 100000000;
A a;
B b = new B();
DateTime st, res;
st = DateTime.Now;
for(var idx = 0; idx < times; idx++)
a = (A)b;
res = DateTime.Now;
(res - st).TotalMilliseconds.Dump();
st = DateTime.Now;
for(var idx = 0; idx < times; idx++)
a = b as A;
res = DateTime.Now;
(res - st).TotalMilliseconds.Dump();
}
class A { }
class B : A { }
private static void Main()
{
int times = 1000 * 1000 * 100;
A a;
B b = new B();
Stopwatch sw1 = new Stopwatch();
sw1.Start();
for (int i = 0; i < times; i++)
{
a = (A)b;
}
sw1.Stop();
Console.WriteLine(sw1.ElapsedTicks);
Stopwatch sw2 = new Stopwatch();
sw2.Start();
for (int i = 0; i < times; i++)
{
a = b as A;
}
sw2.Stop();
Console.WriteLine(sw2.ElapsedTicks);
}
private class A
{ }
private class B : A
{ }
private static void Main()
{
const int times = 1000 * 1000 * 100 / 16;
A a;
B b = new B();
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < times; i++)
{
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
a = (A)b;
}
sw.Stop();
Console.WriteLine(sw.ElapsedTicks);
Stopwatch sw2 = new Stopwatch();
sw2.Start();
for (int i = 0; i < times; i++)
{
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
a = b as A;
}
sw2.Stop();
Console.WriteLine(sw2.ElapsedTicks);
}
private class A
{ }
private class B : A
{ }
public T OperatorAs<T>(object source)
{
return source is T ? (T) source : null;
}
for (i = 0; i < strlen(s); i++) {
// process s[i]
}
/**
* The value is used for character storage.
*/
char[] value;
/**
* The count is the number of characters used.
*/
int count;
StringBuilder прошлое и настоящее