; 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パターンを実際に手で直すと、エラーメッセージのどこを読めばよいかが掴めます。