獲得變量的名稱
獲得變量的名稱函數
public static string GetVarName(Expression<Func<變量類型, 變量類型>> exp)
public static string GetVarName_Int(Expression<Func<int, int>> exp){return ((MemberExpression)exp.Body).Member.Name;}
使用時
int A=0;
GetVarName_MyCamera(p => LeftUpViewCamera);
為什么我們要新寫一個函數呢?
如果我們直接使用A.ToString();我們獲得的是“0”這個字符串,并不能獲得“A”
我們使用時只需要將變量類型改成我們傳入的變量類型就好了。如果是一個類的實例的話就將變量類型改成類名。
獲得傳入參數的參數類型與堆棧中的函數名
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
//using System.Reflection;namespace 獲得傳入參數的參數類型與堆棧中的函數名
{class Program{static void Main(string[] args){string A = "cba";string B = "abc";MyFunc(ref A, B);}private static void MyFunc(ref string str1, string str2){var stackTrace = new StackTrace();var stackFrame = stackTrace.GetFrame(0);// 如果要獲取上層函數信息調用 GetFrame(1), 這樣就可以寫成通用函數了var methodBase = stackFrame.GetMethod();//獲得堆棧中的函數名Console.WriteLine("函數名:" + methodBase.Name);var parameterInfos = methodBase.GetParameters();//獲得傳入參數的參數類型foreach (var parameterInfo in parameterInfos){Console.WriteLine("參數信息:" + parameterInfo.Name);}}}
}
不懂可以留言,看到了立刻回復。