我开始尝试使用Roslyn进行一些代码生成。我注意到,当我在语法对象上调用.Add...
时,我正在调用的原始对象没有发生突变。罗斯林是这样设计的吗?有没有办法使其可变?
答案 0 :(得分:0)
是的,语法树是不可变的。 Roslyn团队的一些原始设计讨论是关于不变性的:
https://github.com/KirillOsenkov/Bliki/wiki/Roslyn-Immutable-Trees
并发性和线程安全性是其中的一些要点,并且能够实现重复数据删除而无需实现类似写时复制的功能。
我不知道使它们可变的方法。