C#中如何获取当前正在执行的代码所在的函数(方法)的名字和参数等信息?
public static string GetMethodName()
{
var method = new StackFrame(1).GetMethod(); // 这里忽略1层堆栈,也就忽略了当前方法GetMethodName,这样拿到的就正好是外部调用GetMethodName的方法信息
var property = (
from p in method.DeclaringType.GetProperties(
BindingFlags.Instance |
BindingFlags.Static |
BindingFlags.Public |
BindingFlags.NonPublic)
where p.GetGetMethod(true) == method || p.GetSetMethod(true) == method
select p).FirstOrDefault();
return property == null ? method.Name : property.Name;
}
【补充】:其他方法
得到函数名:
System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();
this.Text = st.GetFrame(0).ToString();
得到代码行,源代码文件名:
StackTrace st = new StackTrace(new StackFrame(true));
Console.WriteLine(" Stack trace for current level: {0}", st.ToString());
StackFrame sf = st.GetFrame(0);
Console.WriteLine(" File: {0}", sf.GetFileName());
Console.WriteLine(" Method: {0}", sf.GetMethod().Name);
Console.WriteLine(" Line Number: {0}", sf.GetFileLineNumber());
Console.WriteLine(" Column Number: {0}", sf.GetFileColumnNumber());
C#中怎么用process调用一个exe文件并传入参数?
System.Diagnostics.Process.Start("程序的路径", "参数1 参数2");
第一个参数是aaa.exe 的路径,第二个参数是用空格分开的两个参数组成的字符串。
aaa.exe中的main方法写做
static void Main(string[] args)
用Process.Start启动aaa.exe时main方法的args参数就是Process.Start传入参数用转换成的长度为2的数组
怎么用WPF编程获取电脑唯一标识号,求详细,求简单代码。能用就好,初学者能看懂就好 不需要太复杂的。
/// /// 获取网卡硬件地址 /// /// string //using System.Management; public string GetMoAddress() { string MoAddress = " "; using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration")) { ManagementObjectCollection moc2 = mc.GetInstances(); foreach (ManagementObject mo in moc2) { if ((bool)mo["IPEnabled"] == true) MoAddress = mo["MacAddress"].ToString(); mo.Dispose(); } } return MoAddress.ToString(); }
如何查看本机上安装的.NET Framework版本
在开始菜单选择"运行",
或者快捷键 “windows键+R”
在命令窗口输入regedit.exe,打开注册表
在注册表中定位到如下节点
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
安装过的.NET Framework都列在NDP目录下
对于.NET Framework 4.5或之后的版本查看方法
如上打开注册表并定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
如果没有Full节点,那么说明没有安装过4.5或者更新的版本
通过"Release"的值来判断所安装的.NET Framework版本,可参照下表