猿问

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

先看一下代码,petshop4.0

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

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


慕虎7371278
浏览 513回答 2
2回答

慕姐4208626

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

qq_花开花谢_0

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