先看一下代码,petshop4.0
public static PetShop.IDAL.ICategory CreateCategory() {
string className = path + ".Category";
return (PetShop.IDAL.ICategory)Assembly.Load(path).CreateInstance(className);
}
都知道反射会降低一些性能,
有同事说像这样放在一个静态方法里就不会了.
但是我觉得还是会走那个反射的.
但不知道原理.
请达人解惑.
函数内部执行是一样效率的。
主要是静态方法比实例方法在调用时候的差别,就像你要用刀切菜,静态方法是已经有一把刀了,拿来就用,实例方法代表着你需要先造一把刀,然后才能用。
你同事说的错的。
放在静态方法里还是会反射的,因为你的代码里肯定需要调用到这个静态方法,既然调用到了这个静态方法,那肯定会执行到这个方法里的反射。
使用静态方法是为了方便,无需实例化类。
没看出来哪儿快了,顶多是static CreateCategory 比 CreateCategory 执行快,跟反射没关系。