是否可以在c#或VB.NET中添加关键字?
本文关键字:NET 添加 关键字 VB 是否 | 更新日期: 2023-09-27 18:03:38
我知道这可能不值得,但只是出于教育目的,我想知道是否有一种方法可以将您自己的关键字注入。net语言。
例如,我认为c#中有c++ asm关键字是很好的。
记住,我不是在谈论如何实现asm关键字,而是在c#中添加关键字的一般方法。
我想象的代码:
asm{
mov ax,1
add ax,4
}
那么有没有办法做到这一点呢?
keyword{ }
实现的答案非常适合这个问题。目前还不可能。然而,微软正在开发一个名为Roslyn的项目,它可以被概括为"编译器即服务"。它允许你通过API扩展或修改编译器的行为。
当Roslyn有空的时候,我相信这应该是一件非常可行的事情。
您可以使用任何工具在将代码发送到c#编译器之前对其进行预处理。例如,您可以使用VS宏来进行预处理,将您发明的给定语法映射为将编译成c#代码的东西,如果存在问题,可能会生成错误。如果VS宏对你来说不够强大,那么你可以在将文本发送给编译器之前使用你自己的IDE对文本进行任何编码。
编译器没有内置的支持来指定你自己的关键字/语法;您需要完全独立于编译器来处理它。
不幸的是这是不可能的。您不能以任何方式扩展或更改语言。
你可以用一些模糊的方式使用PostSharp来读取和解析字符串,并在编译时将它们转换为自定义代码(预处理器)。但你不会很满意,因为它很容易出错,你不会得到任何智能感知或代码补全的魔法字符串。
根据MSDN关键字是预定义的,不能更改。所以你不能添加任何,因为你需要告诉编译器如何处理它们。就目前而言,你不能。