我怎么知道某些扩展方法是否使对象“突变”?

用户名

如果措辞不佳,请随意编辑标题中的“变异”。

我的问题相对来说很简单。

请看以下示例:

myCollection.OrderBy(o => o);

我如何知道是否OrderBy/不愿意订购,myCollection或者是否需要进行以下任务:

myCollection = myCollection.OrderBy(o => o);

是否需要构建它并在每次遇到不熟悉的扩展程序时进行检查?

请注意:我不是在问这是否会影响myCollection,我已经知道使用数百次使用它的答案了,我在问我怎么知道。

令人讨厌的家伙

如史蒂文·利肯斯(Steven Liekens)所说,您可以在类装饰中检查Pure属性。但是,在没有它的情况下,唯一可以确定的方法是:

  • 实验:例如,获取该类的实例并对其进行序列化。使用该方法,然后对其进行序列化。比较结果。可能并非每次都准确。

  • 对该方法进行逆向工程:希望您有源代码。如果不这样做,则可以使用反射。如果该方法有些复杂,则需要做出一些判断,但是这种复杂性在此是主观的。

  • 阅读文档并信任它们-如果文档存在。这是与.NET Framework类型相关的明智之举,否则,是对信念的锻炼。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我怎么知道什么对象叫做方法?

我如何知道某些iptables扩展是否可用并启用?

我怎么知道Rust中是否初始化了某些东西?

我怎么知道我的minVersion是否良好?

我怎么知道对象是否是字符串类型的对象?

我怎么知道是否使用的onComplete或的onSuccess?

我怎么知道dd是否仍在工作?

我怎么知道crontab是否工作正常?

我怎么知道是否存在膨胀视图

我怎么知道按钮是否被拨动?

我怎么知道一个对象是否“可以”做某事

我怎么知道一个ActiveRecord对象是否会在实际被销毁之前被销毁?

我怎么知道我的 execute 方法是否执行了成功的删除?

我怎么知道某个方法是否调用了在 c# 中具有特定属性的方法

我怎么知道我的 tensorflow 结构是否适合我的问题?

我怎么知道方法开始的时间

在javascript中,我怎么知道html对象的属性是属性,方法还是事件?

我怎么知道我的Tomcat是否支持Servlet 3.0?

我怎么知道我的清单是否全为1?

我怎么知道我的代码是否作为React Native运行

我怎么知道我的服务器是否有NUMA?

我怎么知道我的JFrame当前是否最小化?

我怎么知道我正在从事的项目是否是symfony?

我怎么知道我的班级是否有财产

我怎么知道我是否在运行Wayland?

我怎么知道我的Android设备是否支持C指令?

我怎么知道我是否有Gnome或KDE?

我怎么知道主板的板载音频是否与游戏兼容?

对于waitpid,我怎么知道孩子是否完成了过程?