Code Fix

初級

; expected の原因と直し方

C#で最も頻繁に出るコンパイルエラーです。セミコロンの付け忘れをコンパイラがどう検出するかを理解すると、報告される列番号のずれにも対応できます。

エラーメッセージの読み方

Program.cs(3,23): error CS1002: ; expected
Program.cs
ファイル名
3
行番号
23
列番号 — この位置でコンパイラが解析に失敗しました
CS1002
エラーコード — 検索するとMicrosoftの解説ページが見つかります
; expected
内容 — 期待していたもの、または受け付けられなかったもの

このエラーが出る典型パターン

パターン1

 1  class Program {
 2      static void Main(string[] args) {
 3          int count = 10 
                          ^
 4          System.Console.WriteLine(count);
 5      }
 6  }
Program.cs(3,23): error CS1002: ; expected

C#は文の終わりをセミコロンで判断します。改行では文が終わりません。

直し方: (空); にします。

この問題を解いてみる →

広告
広告スロット(未設定)

パターン2

 1  class Program {
 2      static void Main(string[] args) {
 3          System.Console.WriteLine("Hello") 
                                             ^
 4      }
 5  }
Program.cs(3,42): error CS1002: ; expected

メソッド呼び出しも1つの文です。閉じ括弧のあとにセミコロンが要ります。

直し方: (空); にします。

この問題を解いてみる →

パターン3

 1  class Program {
 2      static int Twice(int n) {
 3          return n * 2 
                        ^
 4      }
 5      static void Main(string[] args) {
 6          System.Console.WriteLine(Twice(3));
 7      }
 8  }
Program.cs(3,21): error CS1002: ; expected

return文もセミコロンで閉じます。次の行に}があっても文は終わっていません。

直し方: (空); にします。

この問題を解いてみる →

よくある誤解

報告される列番号は、次のトークンが現れる直前の位置です。実際に足りないのはその手前の式の末尾なので、位置がずれて見えることがあります。

まとめ

; expectedは初級でつまずきやすい項目です。上の3パターンを実際に手で直すと、エラーメッセージのどこを読めばよいかが掴めます。

演習をはじめる

関連するエラー

広告
広告スロット(未設定)