我的老板认为自己是 OOP 大师,而我则认为他是业余程序员。他负责我们的 Sage 开发,为我们客户的 Sage 安装添加自定义要求。他最近对反射(reflection)感到非常兴奋,他正在代码中反射(reflection) Sage 的程序集并更改私有(private)成员和事件处理程序。我认为这不是一个好主意,但他驳斥了我,说圣人认为他能做到这一点真是太棒了。我认为这是不好的做法,因为它效率低下,而且如果他们在任何时候改变其实现,我们的代码都可能崩溃。我的意思是,通常开发人员出于某种原因将某些内容设为私有(private),对吗?
这方面的一般规则是什么?
非常感谢,如果这看起来是一个愚蠢的问题,我们深表歉意。
保罗
最佳答案
你是对的。如果您依赖于第 3 方库的实现细节,那么您最好准备好在第 3 方库更新时重写所有内容,并准备好在您使用某些“无害”值更改某些私有(private)变量时出现意外的副作用。
答案是,只有当您 100% 确定自己正在做的事情并且准备好面对后果时才这样做。
关于.net - 使用反射来改变实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3617109/