Roslyn的代码生成API是不可变的吗?

时间:2018-08-08 02:19:28

标签: .net roslyn

我开始尝试使用Roslyn进行一些代码生成。我注意到,当我在语法对象上调用.Add...时,我正在调用的原始对象没有发生突变。罗斯林是这样设计的吗?有没有办法使其可变?

1 个答案:

答案 0 :(得分:0)

是的,语法树是不可变的。 Roslyn团队的一些原始设计讨论是关于不变性的:

‪‬https://github.com/KirillOsenkov/Bliki/wiki/Roslyn-Immutable-Trees

并发性和线程安全性是其中的一些要点,并且能够实现重复数据删除而无需实现类似写时复制的功能。

我不知道使它们可变的方法。