繁体   English   中英

Roslyn是否内置了“简化”?

[英]Are there built-in “simplifications” with Roslyn?

有没有内置的方法可以使用Roslyn来执行C#编译器所做的相同编译时转换,例如将迭代器,初始化器,lambdas,LINQ等转换为基本的C#代码?

Roslyn编译器API旨在(除了将源代码转换为IL)之外,还可以构建源代码分析和转换工具。

但是,lambda和迭代器没有始终使用source指定的转换。 它们使用内部绑定节点抽象建模,其中包括只能使用IL表示的其他编译器特定规则。

可以将LINQ转换为C#中的源代码,因为它被指定为源代码转换(无论编译器是否真的以这种方式执行。)然而,没有编译器API专门执行此操作。 如果有,它可能会显示为服务层API而不是编译器API。

AFAIK,不,罗斯林没有暴露这样的东西。 但编译器必须以某种方式进行这些转换,因此您可以通过访问某些internal方法来完成此操作。

当然,您可以使用Roslyn自己进行这些转换,但这不是您所要求的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM