C 2 0 的 語法多義性

2021-09-05 17:36:12 字數 832 閱讀 7409

在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...