是否可以在c#或VB.NET中添加关键字?

本文关键字:NET 添加 关键字 VB 是否 | 更新日期: 2023-09-27 18:03:38

我知道这可能不值得,但只是出于教育目的,我想知道是否有一种方法可以将您自己的关键字注入。net语言。

例如,我认为c#中有c++ asm关键字是很好的。
记住,我不是在谈论如何实现asm关键字,而是在c#中添加关键字的一般方法。

我想象的代码:

asm{
    mov ax,1
    add ax,4
}

那么有没有办法做到这一点呢?

是否可以在c#或VB.NET中添加关键字?

关于keyword{ }实现的答案非常适合这个问题。

目前还不可能。然而,微软正在开发一个名为Roslyn的项目,它可以被概括为"编译器即服务"。它允许你通过API扩展或修改编译器的行为。

当Roslyn有空的时候,我相信这应该是一件非常可行的事情。

您可以使用任何工具在将代码发送到c#编译器之前对其进行预处理。例如,您可以使用VS宏来进行预处理,将您发明的给定语法映射为编译成c#代码的东西,如果存在问题,可能会生成错误。如果VS宏对你来说不够强大,那么你可以在将文本发送给编译器之前使用你自己的IDE对文本进行任何编码。

编译器没有内置的支持来指定你自己的关键字/语法;您需要完全独立于编译器来处理它。

不幸的是这是不可能的。您不能以任何方式扩展或更改语言。

你可以用一些模糊的方式使用PostSharp来读取和解析字符串,并在编译时将它们转换为自定义代码(预处理器)。但你不会很满意,因为它很容易出错,你不会得到任何智能感知或代码补全的魔法字符串。

根据MSDN关键字是预定义的,不能更改。所以你不能添加任何,因为你需要告诉编译器如何处理它们。就目前而言,你不能。