猿问

关于一个静态方法和反射的问题?

先看一下代码,petshop4.0

       public static PetShop.IDAL.ICategory CreateCategory() {
           string className = path + ".Category";
           return (PetShop.IDAL.ICategory)Assembly.Load(path).CreateInstance(className);
       }

都知道反射会降低一些性能,
有同事说像这样放在一个静态方法里就不会了.
但是我觉得还是会走那个反射的.
但不知道原理.


心有法竹
浏览 751回答 2
2回答

有只小跳蛙

函数内部执行是一样效率的。主要是静态方法比实例方法在调用时候的差别,就像你要用刀切菜,静态方法是已经有一把刀了,拿来就用,实例方法代表着你需要先造一把刀,然后才能用。

子衿沉夜

放在静态方法里还是会反射的,因为你的代码里肯定需要调用到这个静态方法,既然调用到了这个静态方法,那肯定会执行到这个方法里的反射。使用静态方法是为了方便,无需实例化类。
随时随地看视频慕课网APP
我要回答