.NET框架和“ Visual Basic”编译器的角色之间有什么区别?

时间:2019-12-05 15:28:28

标签: .net vb.net compiler-construction clr

据我了解,.NET框架实质上提供了在对VB.NET应用程序进行编程时可用的所有内置功能(类,方法等)。毕竟,这就是为什么它被称为“框架”的原因。

但是,我最近了解到,显然,某些功能是由编译器提供的。导致我发现这个问题的原因是尝试使用这两个VB.NET功能:interpolated stringsNameOf运算符。我试图在第三方VB.NET IDE(不是Visual Studio)中使用它们,但是却遇到编译器错误。阅读文档后,这两个功能都说它们“在Visual Basic 14和更高版本中可用”。

我花了很多时间才弄清楚,在这种情况下,“ Visual Basic”是指编译器,而不是编程语言。 (他们可能为它命名的含义不太含糊吗?)。这对我来说是一个新的启示。我一直以为.NET框架版本以及仅此一个因素就决定了我可以使用哪些现成的功能。我不知道还有“编译器版本”之类的东西也会影响这些事情。

那是说,我想我的问题是:为什么有功能(例如字符串插值和NameOf)属于编译器而不是.NET框架?我以为框架和编译器之间的区别是框架提供了功能,而编译器只是将源代码转换为IL代码。为什么在这些情况下这种区别变得模糊了?

0 个答案:

没有答案