目前的.Net编译器是完全独立的。 Roslyn应该将它们组合成一个编译器。有谁知道这是否会引入在单个项目中拥有多种语言的能力?或者甚至可能在一个文件/类中?
目前你能做的最好的事情就是在一个解决方案中有多个项目,但我真的希望在一个项目中看到多种语言,而且我希望Roslyn可能最终导致这种情况。 / p>
答案 0 :(得分:7)
答案是否定的。当我们启动Roslyn项目并确定它超出范围时,我们考虑了可能的要求。 Roslyn C#和VB编译器共享很多代码,但它们是独立的编译器。符号表模型是分开的。对于表示C#中的类的符号,symbol.Members(" x")返回名为lower-case x的所有成员。 VB符号表模型中的相同方法返回名为lower-case x AND的所有成员以及名为upper-case x的所有成员。
我们可以设计"会员"采用附加参数的方法,该参数表示查找是否应取决于案例或与案例无关,但我们没有这样做。 C#符号表具有C#编译器所需的内部数据,VB符号表具有VB编译器所需的内部数据,它们是单独实现的。