예제 #1
0
        public void Execute()
        {
            //
            // Caller Informationは、C# 5.0にて追加された機能である。
            // Cの__FILE__や__LINE__と同じ要領で利用できる属性。
            // 追加された属性は以下の3つ。
            //   CallerFilePath:   ファイルパス
            //   CallerLineNumber: 行番号
            //   CallerMemberName: メンバー名
            // 上記の属性はメソッドの引数に指定して利用する.
            //
            // 注意点として、以下の点が存在する。
            //   ・引数にデフォルト値を指定していないとダメ
            //   ・コンパイル時に解決される情報である
            //
            // コンストラクタやデストラクタなどの一部のメソッドは
            // 特殊な名称が設定される。(.ctor, .cctor, Finalize)
            // 詳細については
            //   http://msdn.microsoft.com/en-us/library/hh534540.aspx
            // を参照の事。
            //
            // 利用する場合、以下の名前空間をインポートしておくこと。
            //   System.Runtime.CompilerServices
            //
            var manager = new CallerInfoManager();

            //
            // 各呼び出し時の呼び元情報を取得して表示.
            //
            Output.WriteLine(manager.Snap());
            Output.WriteLine(MethodA(manager));
            Output.WriteLine(MethodB(manager));
        }
        public void Execute()
        {
            //
            // Caller Informationは、C# 5.0にて追加された機能である。
            // Cの__FILE__や__LINE__と同じ要領で利用できる属性。
            // 追加された属性は以下の3つ。
            //   CallerFilePath:   ファイルパス
            //   CallerLineNumber: 行番号
            //   CallerMemberName: メンバー名
            // 上記の属性はメソッドの引数に指定して利用する.
            //
            // 注意点として、以下の点が存在する。
            //   ・引数にデフォルト値を指定していないとダメ
            //   ・コンパイル時に解決される情報である
            //
            // コンストラクタやデストラクタなどの一部のメソッドは
            // 特殊な名称が設定される。(.ctor, .cctor, Finalize)
            // 詳細については
            //   http://msdn.microsoft.com/en-us/library/hh534540.aspx
            // を参照の事。
            //
            // 利用する場合、以下の名前空間をインポートしておくこと。
            //   System.Runtime.CompilerServices
            //
            var manager = new CallerInfoManager();

            //
            // 各呼び出し時の呼び元情報を取得して表示.
            //
            Output.WriteLine(manager.Snap());
            Output.WriteLine(MethodA(manager));
            Output.WriteLine(MethodB(manager));
        }
예제 #3
0
 private CallerInfoManager MethodB(CallerInfoManager manager)
 {
     return(manager.Snap());
 }
 private CallerInfoManager MethodB(CallerInfoManager manager)
 {
     return manager.Snap();
 }