请看下面C#的代码,是否有问题?
int[] arr = new int[5];
foreach(int var in arr)
{
Console.ReadLine(var);
}
相信你已经看出来了,var是关键字,似乎不能用作标识符,那真的是这样吗?当你把这段代码放在VS中时,你会发现,代码不会报错。为什么呢?因为C#中关键字分为两种:一种是保留标识符关键字,另一种是上下文关键字。 上下文关键字仅在一部分程序上下文中有特殊含义,可以在相应上下文范围之外用作标识符。 一般来说,C# 语言中新增的关键字会作为上下文关键字添加,以免破坏用旧版语言编写的程序。而var恰好是上下文关键字,可以在特定情况下用作标识符。
下面来看一下C#中全部的关键字有哪些吧。
1、保留标识符关键字,共78个
2、上下文关键字,共30个
以上关键字,参考自官方语言参考:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/
学习要对比,再来看一下Java中的关键字有哪些吧。
3.Java语言中的关键字,共50个
Java关键字,参考自官方帮助文档:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
同时,官方文档已经注明:false,true,null看起来像是关键字,其实不是,他们只是字面量而已。
总结:
c#关键字: 78 + 30 = 108个
Java关键字: 50 个