C# 報錯解碼器
你是搜著 error CS0029 帶著截止時間來的。下面每一頁都會在你的瀏覽器裡現場復現這個錯誤,用人話講清原因,並給出可以直接複製的修法。
語法錯誤
-
CS1002— 缺少分號最常見的 C# 錯誤。真正的錯在報錯行的上一行——外加哪些地方要分號、哪些地方永遠不要。 -
CS1513— 缺少右花括號有個塊開了沒關。報錯行是編譯器放棄的位置,不是花括號該在的位置——附花括號配平排查法。 -
CS1525— 無效的表示式項"X"值的位置放了標點:空初始化、懸空運算子、空括號。五種形態外加級聯排查。 -
CS1022— 應輸入型別、名稱空間定義或檔案結尾多了一個右花括號——CS1513 的映象。計數法幾秒定位。 -
CS1519— 類、結構或介面成員宣告中的無效標記類體裡寫了語句,或者欄位缺型別。為什麼可執行程式碼必須活在方法裡。 -
CS1001— 應輸入識別符號名字槽位拿到了值,或關鍵字被當名字。五個名字槽位與@轉義。 -
CS1031— 應輸入型別new 5()、空泛型、引數無型別——CS1001 的型別形態版本。
型別轉換錯誤
-
CS0029— 無法將型別"X"隱式轉換為"Y"把字串塞進了數字的位置(或反過來)。四種成因、四種修法,外加與 CS0266 的區別。中文全文。
名稱解析錯誤
-
CS0103— 當前上下文中不存在名稱"X"拼寫錯、先使用後宣告、或者花括號作用域陷阱。三種成因覆蓋幾乎全部場景。中文全文。 -
CS0246— 未能找到型別或名稱空間名"X"未知的型別(不是變數):類名拼錯、缺 using、包沒引用。附決策表。 -
CS1061— "X"未包含"Y"的定義變數沒問題,點號後面的部分有問題:拼寫、大小寫、調錯型別的成員、把屬性當方法呼叫。 -
CS0117— "X"未包含"Y"的定義(靜態成員)CS1061 的型別級孿生:類名後面的拼寫錯,如Console.WritLine、Math.Sqr。
流程控制錯誤
-
CS0165— 使用了未賦值的區域性變數先讀後寫——C# 拒絕塞給你一個默不作聲的 0。為什麼 if 分支裡賦值不算數,以及三種修法。 -
CS0163— 控制流不能從一個 case 標籤貫穿到另一個C# 拒絕 C 時代的 switch 貫穿 bug。每個 case 以 break/return/throw 結尾——棧式標籤才是你真正想要的"貫穿"。
宣告與賦值
-
CS0128— 區域性變數"X"已定義同一作用域聲明瞭兩次——多半是複製貼上帶來的型別關鍵字。賦值 vs 重複宣告,以及不同作用域為何可以重名。 -
CS0131— 賦值號左邊必須是變數等號左邊沒地方存值:常量、字面量或表示式。賦值號左邊允許出現什麼。
方法與建構子呼叫
-
CS1501 / CS7036— 方法引數數量不對呼叫與參數列對不上數。可選引數、過載,以及命名引數這個救命稻草。 -
CS1729— "X"不包含採用 N 個引數的建構子宣告任何建構子後,免費的無參建構子就消失了——為什麼new X()突然報錯,以及兩種修法。
24 個錯誤頁已全部有中文全文(語法 5 類 + 語義 4 類 + 型別/名稱/呼叫),每頁都能現場復現。缺哪個堵住你的? 告訴我們,優先補。