01
DEC
实现一个简单的基于语义的C#代码比较工具
代码比较功能在很多版本管理工具中都存在,比如Git和TortoiseSVN,Compare Beyond中也有。这个功能可以很方便的帮助我们查看代码的变更。目前这些工具都是简单的基于文本差异的比较。然而在有些时候,我们需要基于语义的比较,比如在代码中,我只是调整了方法的前后顺序、添加了一些注释、删除了一些语句之间的空格,或是将一个大的类使用partial关键字,拆分到多个源文件中。在这种情况下,传统的基于简单文本进行代码比较的方式则失去了应有的作用。我们需要保证代码的逻辑和正确定不变即可,而不关心代码的书写格式,比如行号,空格,注释,格式化这些。本文基于Roslyn实现了一个简单的基于语义的C#代码比较工具。 …