我的代码在循环内多次执行typeof
。
我想知道是否应该在循环外调用typeof
并使用变量?
我的代码目前是这样的。
for(int i=0; i < 1000; i++)
{
Type t = Foo(i);
if(t == typeof(string))
{
//....
}
}
以下代码是更快,更慢还是没有区别?
Type s = typeof(string)
for(int i=0; i < 1000; i++)
{
Type t = Foo(i);
if(t == s)
{
//....
}
}
而不是运行一些C#测试来查看哪些运行速度更快。我正在寻找一个可以解释使用typeof
时会发生什么的答案。
它是否产生编译时常量?
答案 0 :(得分:7)
否(如在极其微不足道的情况下),typeof()
在编译时完成 - 工作是类型比较。你应该问的是为什么你在使用多态时检查类型。