我學習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'只被聲明,即它尚未初始化。 –