初級のC#エラー 42問
14種類のエラーを、それぞれ複数パターンずつ収録しています。
- ; expected の原因と直し方C#で最も頻繁に出るコンパイルエラーです。セミコロンの付け忘れをコンパイラがどう検出するかを理解すると、報告される列番号のずれにも対応できます。
- } expected の原因と直し方波括弧の対応が崩れたときに出ます。エラー行がファイル末尾やブロック末尾を指すため、原因箇所の特定にコツが要ります。
- Cannot implicitly convert type の原因と直し方暗黙的に変換できない型同士を代入しようとしたときに出ます。string→intやbool→intなど、C#が許さない組み合わせを押さえておきましょう。
- does not exist in the current context の原因と直し方変数名のスペルミスやスコープ外参照で出る、初心者に最も身近なエラーの一つです。
- type or namespace name could not be found の原因と直し方List<T>やDictionary、StringBuilderなど、名前空間ごとに分かれたクラスを使うにはusingディレクティブが必要です。
- No overload for method の原因と直し方メソッドの引数の数や型が定義と一致しないときに出ます。オーバーロード解決の仕組みを理解する入り口になります。
- not all code paths return a value の原因と直し方値を返すと宣言したメソッドで、すべての実行経路にreturn文があるかをコンパイラが検証します。
- Use of unassigned local variable の原因と直し方ローカル変数は宣言しただけでは値を持ちません。条件分岐をまたいだ使用で見落としがちなエラーです。
- static文脈からインスタンスメンバーへアクセスした原因staticなMainからインスタンスメンバーへ直接アクセスしようとしたときに出ます。static/インスタンスの違いを理解する重要なつまずきポイントです。
- switch文のフォールスルー禁止エラーの原因と直し方C#のswitch文はCやJavaと違い、暗黙のフォールスルーを認めません。各caseの終わり方に明示的な文が必要です。
- Index was outside the bounds of the array の原因と直し方配列やリストの範囲外アクセスで実行時に発生します。ループの境界条件の誤りが典型的な原因です。
- Object reference not set エラー(null参照)の原因C#で最も有名な実行時エラーです。nullのままの変数のメンバーにアクセスしようとすると発生します。
- The input string was not in a correct format の原因と直し方int.Parseなどの変換メソッドに、数値として解釈できない文字列を渡したときに発生します。
- Attempted to divide by zero の原因と直し方整数の除算・剰余演算で除数が0のときに発生します。浮動小数点数の0除算とは挙動が異なる点に注意が必要です。