そのため、LINQPad は C# 5.0 のすべてをサポートしていると言っていますが、CallerMemberName を機能させることができません。
void Main()
{
GetMethodName().Dump();
}
public string GetMethodName([CallerMemberName] string memberName = "")
{
return memberName;
}
エラー: 型または名前空間の名前 'CallerMemberName' が見つかりませんでした (F4 キーを押して、using ディレクティブまたはアセンブリ参照を追加してください)
型または名前空間名 'CallerMemberNameAttribute' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)
CallerMemberName が含まれている名前空間の行を追加しようとしましたusing
が、LINQPad は入力したコードが秘密の非表示クラスの内部にあると想定し、クラスの内部に配置できないため、もちろん機能しませんusing
。そこで、CallerMemberName: の完全な名前空間を入力しようとしましたpublic string GetMethodName([System.Runtime.CompilerServices.CallerMemberName] string memberName = "")
が、それでもうまくいきません。
エラー: 型または名前空間名 'CallerMemberName' が名前空間 'System.Runtime.CompilerServices' に存在しません
型または名前空間名 'CallerMemberNameAttribute' が名前空間 'System.Runtime.CompilerServices' に存在しません