現在の行番号を取得するにはどうすればいいですか? 質問する

現在の行番号を取得するにはどうすればいいですか? 質問する

私がやりたいことの例は次のとおりです。

MessageBox.Show("Error line number " + CurrentLineNumber);

上記のコードではCurrentLineNumber、 はこのコードのソース コード内の行番号になります。

どうやってやるの?

ベストアンサー1

.NET 4.5 / C# 5 では、新しい呼び出し元属性を使用するユーティリティ メソッドを記述することで、コンパイラにこの作業を実行させることができます。

using System.Runtime.CompilerServices;

static void SomeMethodSomewhere()
{
    ShowMessage("Boo");
}
...
static void ShowMessage(string message,
    [CallerLineNumber] int lineNumber = 0,
    [CallerMemberName] string caller = null)
{
     MessageBox.Show(message + " at line " + lineNumber + " (" + caller + ")");
}

たとえば次のように表示されます。

39 行目のブー (SomeMethodSomewhere)

[CallerFilePath]元のコード ファイルのパスを示すものもあります。

おすすめ記事