在c# 2.0的語言規範中, 有一段對
"語法多義性"的說明。看後寫了個例子編譯了一下,**如下:
public
partial
class
form1 : form
public
class
bpublic
void
f(bool
b1,
bool
b2)public
void
f(bool
b1)public
bool
g<
ta, tb
>
(int
i)public
form1()
private
void
test1()
private
void
test2()
private
void
test3()
private
void
test4()
private
void
test5()
private
void
test6()
} test4()編譯不過去,提示「變數「h」不是泛型方法。如果原打算使用表示式列表,請在 < 表示式兩邊使用括號。」。
即要求改正如test5()的**。test6()也是可以正確編譯的。
而test4()在vs.net2003,即.net 1.1下是可以編譯通過的。
同時受泛型影響的「規範」還有,"
右移語法變化", 在c#語言規範中也作了部分說明。
解析Javascript中大括號「 」的多義性
js中大括號有四種語義作用 語義1,組織復合語句,這是最常見的 如下 if condition else for 語義2,物件直接量宣告 如下 var obj 整個是個賦值語句,其中的是個表示式。語義3,宣告函式或函式直接量 如下 function f1 var f2 function f1與非f2...
正規表示式小括號的多義性
小括號在正規表示式這有以下意義 var reg1 matz 0或1個matz var reg2 matz 1個以上matz var reg3 matz 0或多個matz var reg matz eich reg.test matz true reg.test eich true reg.test ...
C 2 0基本語法一
c 基本語法 一 基本資料型別 型別 說明 定義bool true 或false bool a true short 16位整數 short b 23 int32位整數 intc 24 long 64位整數 long d 25 float 32位浮點數,單精度浮點數 float e 22.33f d...