c#中GetType()与Typeof()的区别

时间:2021-05-20

案例1:
复制代码 代码如下:
int i = 5;
Console.WriteLine(i.GetType());//System.Int32
var x = 127.25m;
Console.WriteLine(x.GetType());//System.Decimal

案例2:
复制代码 代码如下:
namespace _2011._12._15
{
class Program
{
static void Main(string[] args)
{
Test testone = new Test();
string s = testone.GetType().ToString();
Console.WriteLine(s);//_2011._12._15.Test 命名空间的Test类
}
}
class Test
{
}
}

Typeof()返回的是类名的对象,也可以返回类名,也可以返回特定类内部的方法和字段
复制代码 代码如下:
namespace _2011._12._15
{
class Program
{
static void Main(string[] args)
{
Test testone = new Test();
string s = testone.GetType().ToString();
Console.WriteLine("GetType():");
Console.WriteLine(s);//_2011._12._15.Test 命名空间的Test类

Type type = typeof(Test);
Console.WriteLine("Typeof():");
Console.WriteLine(type);//_2011._12._15.Test 命名空间的Test类
Console.WriteLine();

MethodInfo[] methodinfo = type.GetMethods();

Console.WriteLine(methodinfo.GetType());//System.Reflection.MethodInfo[]
foreach (var i in methodinfo)
{
Console.WriteLine(i);//输出Test类的所有方法及继承Object的实例方法
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
MemberInfo[] memberinfo = type.GetMembers();
Console.WriteLine(memberinfo.GetType());
foreach(var i in memberinfo)
{
Console.WriteLine(i);//输出Test类字段和System.type类型
}
}


}
class Test
{
private int age;
public string name;
public void speaking()
{
Console.WriteLine("Welcome to cnblog!");
}
public void writing()
{
Console.WriteLine("Please writing something!");
}
}
}

运行结果:
复制代码 代码如下:
GetType():
_2011._12._15.Test
Typeof():
_2011._12._15.Test

System.Reflection.MethodInfo[]
Void speaking()
Void writing()
System.Type GetType()
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()

System.Reflection.MemberInfo[]
Void speaking()
Void writing()
System.Type GetType()
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()
Void .ctor()
System.String name

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章