吹毛求疵C 1 明確賦值檢查缺陷

2022-04-02 15:53:37 字數 725 閱讀 9209

喜歡c#, 所以期望也比較高, 也就會留意一些不起眼的小缺陷, 也就會有很多改進的設想, 也就希望能和更多的朋友分享這些發現和暢想.

(1)明確賦值檢查缺陷

截止到目前的ms c#4.0版編譯器為止, 關於明確賦值檢查都存在乙個令人不爽的詭異問題, 而且也與ecma標準不一致. 如下例所示:

class definitelyassignedtest

} private static void checkb()

}private static void checkc()

}private static void checkd()

}static bool expr(out int value)

static bool maybe()

}

其中僅有a和c是能編譯通過的, 而b和d不行. 而事實上這4個例子都是"明確賦值"的, 而且按照ecma標準也都應該是"明確賦值"的. 但當前編譯器的實現卻有著自己詭異的規則.

雖然這對手寫的**不會帶來什麼問題, 換個寫法就是了, 可是對於**生成器來說, 卻著實添了不少亂. 就想稀世的臉上落了只蒼蠅, 無傷大雅, 但確實讓人很不爽.

09年6月我把這個問題反饋給了微軟, 9月份有了解決方案......實現沒改, 沒問題,語言標準改了...這樣就沒有不一致了... 打哪指哪, 先射箭後畫靶嘛.

如果您也喜歡c#語言, 並且發現了問題或有建議, 請反饋給開發者們, 讓他們能做的更好.

快速入門C 1

大家最為熟悉的就是各種hello world了吧 今天我們就從這裡開始講解 include iostream using namespace std int main include 包含 引用 所以吶,這就是引用庫之類的標頭檔案 h iostream是指iostream庫,iostream的意思是...

C 1 資料型別

分為兩類 1.基本資料型別 2.引用資料型別 基本資料型別 1整數型 有負數的 sbyte,short int long 正整數 byte,ushort,uint,ulong 可能會表現的不夠形象,看下圖 2.浮點數 float 適用於較小的浮點數 在後面加f 例 float a 1.0f 單精度 ...

堅持c 學習,真正掌握c (1)

今天全面複習了c primer中的第七章函式部分,複習了函式的宣告,定義,過載以及內聯函式的使用。最後複習了指向函式的指標。下面是我的複習心得 1.c 為了相容c語言,以下的兩種函式宣告是同樣的,因為const int形參既接受const實參也接受非const實參,所以沒有區別 int f int ...