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 类 + 类型/名称/调用),每页都能现场复现。缺哪个堵住你的? 告诉我们,优先补。