zoukankan      html  css  js  c++  java
  • C#基础知识---获取调用者信息

    一、概述

    C#5.0提供了一种新功能,可以利用特性和可选参数获得调用者的信息。这些特性信息包括CallerLineNumber、CallerFilePath和CallerMemberName

    二、Demo

    using System;
    using System.Runtime.CompilerServices;
    
    namespace ExceptionDemo
    {
        class Program
        {
            public void Log(string message, [CallerLineNumber]int line = -1, [CallerFilePath] string path = null, [CallerMemberName] string name = null)
            {
    
                Console.WriteLine((line < 0) ? "No line": "Line: " + line);
                Console.WriteLine((path == null) ? "No file path" : path);
                Console.WriteLine((name == null) ? "No member name" : name);
                Console.WriteLine(message);
                Console.WriteLine();
            }
    
            private int test;
            public int Test
            {
                get { return test; }
                set
                {
                    test = value;
                    this.Log($"Test is set to {value}");
                }
            }
    
            static void Main(string[] args)
            {
                Program p = new Program();
                p.Log("A");
                p.Test = 3;
                Action<string> ac = (string msg) => { p.Log(msg); };
                ac("B");
    
            }
        }
    }

    运行结果如下:

  • 相关阅读:
    静态成员 执行顺序
    排序之插入排序
    结构体字节对齐问题
    建模基础&UML
    C#中隐藏(new)和方法重载(overide)的区别
    培训记录
    C笔记
    用例
    .NET架构
    C#格式化日期
  • 原文地址:https://www.cnblogs.com/3xiaolonglong/p/9989920.html
Copyright © 2011-2022 走看看