我学习C#和跨越,使我对它的语法有点不舒服了几件事情来了。不一致的C#语言的语法
案例1
byte num1 = 10; // works
int ten = 10;
byte num2 = ten; // Compile error: Cannot implicitly convert 'int' to byte. An explicit conversion exists.
在第一条语句编译器隐蒙上文字10(类型为int)以字节,相反它不会做的第三条语句相同。
案例2
int[] numbers1 = { 10, 20, 30 }; // works
int[] numbers2;
numbers2 = { 10, 20, 30 }; // Compiler error: Invalid expression term: {
以上缩短阵列初始化不会每个语句工作。
,可能有更多的这种不一致......
看来错误的版本是正确的,因为这些都是按照规定的语法,并没有错误版本(类似的情况)是语言创建结构只是使语言易于编码。
但是仍然不应该在我们使用它的每个地方保持一致?
你不是指语法,而是语法。 –
数组初始化只能在初始化数组时使用,而不能在数组初始化后使用。 “初始化”是指在此情况下“构建时”。你不能用这个语法分开初始化和声明。 –
@MatthewWatson - 'numbers2'只被声明,即它尚未初始化。 –