我正在使用MonoDevelop v5.9.6。尽管它似乎支持C#6.0,但该编辑器无法识别nameof
关键字,并且将其标记为红色,因为它试图将其识别为标识符。
在没有以某种方式破坏编译的情况下,我可以使用任何技巧使其在编辑器中工作吗?
答案 0 :(得分:1)
此技巧有效:
// hack to make MonoDevelop recognize nameof syntax from C#6.0
using nameof = System.Func<string>;
编辑器将其识别为“返回字符串”,并且与诸如nameof(object.Equals)
之类的参数一起使用时不会出现任何错误。
当我 Ctrl + Shift + Space 显示调用的签名时,VSCode会忽略它,而MonoDevelop显示以下内容:
VSCode(支持nameof语法)也没有抱怨。词法分析器将nameof
识别为关键字(红色),但是当我将鼠标悬停时,将其识别为委托。
无论如何我都不会出错。
更令人着迷的是,编译器(Mono和VS)只是忽略了using
指令,还接受了nameof
的用法,它们正常工作。
现在,followup question将是...为什么?编译器为什么不抱怨呢?