在静态方法中获取类的名称

.Net技术 码拜 9年前 (2016-01-29) 1546次浏览
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace delete1
{
class Program
{
static void Main(string[] args)
{
string className = MethodBase.GetCurrentMethod().ReflectedType.FullName; //在静态方法中获取类的名称
Console.WriteLine(className);
}
}
}
本人的问题是这个函数GetCurrentMethod()返回的是MethodBase 对象,并不是Program对象啊,里面是什么机制?
假如GetCurrentMethod()返回的是Program对象 那么后面的.ReflectedType.FullName得出的delete1.Program 就好理解了!谢谢了 高分献上  懂本人意思吗?控制台屏幕上应该显示的是System.Reflection.MethodBase完全限定名才对啊 请高手指点
解决方案:13分
GetCurrentMethod()返回的是MethodBase 对象,没关系啊。GetCurrentMethod()运行完应该得到了当前方法的对象,并且存到MethodBase对象 中了。
ReflectedType这个方法返回的就是GetCurrentMethod()得到MethodBase对象了。这个对象里面就可以通过FullName得到当前对象的类名了。
解决方案:13分
MethodBase.GetCurrentMethod() –> 获得System.Reflection.MethodBase对象,此处它表示delete1.Program.Main方法
.ReflectedType –> 获得System.Type对象,此处它表示delete1.Program这个类型
.FullName; –>获得string对象
解决方案:14分
GetCurrentMethod()应该是获取当前方法的相关信息,当前方法中可以获取方法所在的类型。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明在静态方法中获取类的名称
喜欢 (0)
[1034331897@qq.com]
分享 (0)