在运行时计算类代码的哈希值(C#)?

Bre*_*sen 7 c# reflection

是否有可能在运行时用C#计算类的哈希值(可能是通过反射)?为了清楚起见,我不想计算所述类的实例的哈希码,我想计算类代码本身的哈希值(如果类中的函数发生变化,我希望不同的哈希码是计算).理想情况下,这只会对目标代码中的更改敏感(而不仅仅是代码本身的字符串表示的哈希).

在此先感谢您的帮助,

- 布雷克

Bri*_*sen 6

如果你有Type你可以GetMethod用来获取一个实例MethodInfo,而实例又有一个GetMethodBody返回所述方法的IL.然后你可以哈希那个.

我好奇.你为什么要首先这样做?

  • 我想这样做的原因是,就我而言,我有一个时间复杂度相当高的函数 f。问题是我正在试验 f 应该返回的值,所以 f 经常变化。如果 f 的特定版本 fi 已经为输入 x 运行,我想缓存结果 fi(x) 以便如果 fi 再次运行,它可以只使用记忆值。 (2认同)