代码之家  ›  专栏  ›  技术社区  ›  Seattle Leonard

获取此类型

c#
  •  1
  • Seattle Leonard  · 技术社区  · 14 年前
    class TestClass
    {
        public void Test()
        {
            //which is faster?
            object o1 = MethodRequiringType(typeof(TestClass));
            object o2 = MethodRequiringType(this.GetType());
            //which is better?
            //does it matter?
        }
    
        public object MethodRequiringType(Type t)
        {
            return new { }; 
        }
    }
    
    4 回复  |  直到 14 年前
        1
  •  3
  •   Swift    14 年前

    谷歌快速搜索发现:

    GetType是在 运行时,但从 决定打同一个电话,只是 GetType需要一个实例。如果 我不需要这个例子,我会的 使用typeof。

    还要注意GetType是虚拟的, 不是声明的 参考文献。即:

    Object o=新字符串();

    typeof(o)对象类型

        2
  •  3
  •   Ben Voigt    14 年前

    TestClass ,你不会得到同样的结果。

        4
  •  2
  •   SWeko    14 年前

    实际上,我在一次演讲(关于反射和优化)中测量了这种差异。

    一句话:如果你计划拨打那条电话几十亿次,那么使用 typeOf() 而不是 GetType()