c# - 为什么 params 关键字不是上下文相关的?

标签 c# .net compiler-construction

我问的原因是,它只在方法参数声明中有效,不是吗?我试图在函数体内创建一个名为“params”的变量,但这当然没什么大不了的,只是想知道 MS 选择将其设为全局关键字而不是上下文关键字的原因。

最佳答案

对于任何其他关键字也可以问同样的问题。例如,为什么“class”不是上下文相关的,因为它只用于类声明中?

对我来说,关键字就是关键字。我想它极大地简化了编译的词法分析部分,不必是上下文感知的。

另外,您可以使用 @ 符号来声明一个名为“params”(或任何其他保留关键字)的变量:

var @params = new int[] { 1, 2 };

关于c# - 为什么 params 关键字不是上下文相关的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609501/

相关文章:

c# - 为什么 .NET 4 和 3.5 对 CloseHandle 异常的处理不同?

c# - 设计一个可以直接处理 IL 的 CPU 有什么意义吗?

.net - 为什么空引用异常不能命名具有空引用的对象?

c# - 在枚举值中查找最高设置标志

c# - 如何刷新所有打开的窗口中的功能区

c# - MessageBox 按钮 - 设置语言?

c++ - 是否存在 C4129 警告未指示错误的真实案例?

c# - winform中同一区域的面板

c# - 从数组中输入选择 C#

c# - .net 消息队列