• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

typeof 和 GetType() 有啥区别??

yuna106 2004-11-06 12:52:54
typeof 和 GetType() 有啥区别??
...全文
729 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
好贴!!!!!
回复
fancyhsq 2005-04-10
接分好了..
回复
muziruyue 2005-04-10
来晚一步,接分
回复
hawk234 2005-04-10
upp
回复
g961681 2005-04-10
好贴
回复
happyjun2000 2005-04-10
受教
回复
CWYCN 2005-04-10
UP
回复
minghui000 2005-04-10
接分
回复
linguicheng 2005-01-10
来晚一步,接分
回复
morality 2004-12-29
typeof 运算符用于获得某一类型的 System.Type 对象。typeof 表达式采用以下形式:

typeof(type)
其中:

type
要获得其 System.Type 对象的类型。

备注
不能重载 typeof 运算符。
若要获得一个表达式的运行时类型,可以使用 .NET Framework 方法 GetType。
示例
// cs_operator_typeof.cs
// Using typeof operator
using System;
using System.Reflection;

public class MyClass
{
public int intI;
public void MyMeth()
{
}

public static void Main()
{
Type t = typeof(MyClass);

// alternatively, you could use
// MyClass t1 = new MyClass();
// Type t = t1.GetType();

MethodInfo[] x = t.GetMethods();
foreach (MethodInfo xtemp in x)
{
Console.WriteLine(xtemp.ToString());
}

Console.WriteLine();

MemberInfo[] x2 = t.GetMembers();
foreach (MemberInfo xtemp2 in x2)
{
Console.WriteLine(xtemp2.ToString());
}
}
}
输出
Int32 GetHashCode()
Boolean Equals(System.Object)
System.String ToString()
Void MyMeth()
Void Main()
System.Type GetType()

Int32 intI
Int32 GetHashCode()
Boolean Equals(System.Object)
System.String ToString()
Void MyMeth()
Void Main()
System.Type GetType()
Void .ctor()
示例
// cs_operator_typeof2.cs
// Using GetType method
using System;
class GetTypeTest
{
public static void Main()
{
int radius = 3;
Console.WriteLine("Area = {0}", radius*radius*Math.PI);
Console.WriteLine("The type is {0}",
(radius*radius*Math.PI).GetType());
}
}
输出
Area = 28.2743338823081
The type is System.Double

//////////////////////////////////
Object.GetType 方法

获取当前实例的 Type。

返回值
Type 实例,表示当前实例的确切运行时类型。
备注
对于具有相同运行时类型的两个对象 x 和 y,Object.ReferenceEquals(x.GetType(),y.GetType()) 返回 true。
Type 对象公开与当前 Object 的类关联的元数据。
示例
[C#, JScript] 下列代码示例说明 GetType 返回当前实例的运行时类型。
[C#]
using System;

public class MyBaseClass: Object {
}

public class MyDerivedClass: MyBaseClass {
}

public class Test {

public static void Main() {
MyBaseClass myBase = new MyBaseClass();
MyDerivedClass myDerived = new MyDerivedClass();
object o = myDerived;
MyBaseClass b = myDerived;

Console.WriteLine("mybase: Type is {0}", myBase.GetType());
Console.WriteLine("myDerived: Type is {0}", myDerived.GetType());
Console.WriteLine("object o = myDerived: Type is {0}", o.GetType());
Console.WriteLine("MyBaseClass b = myDerived: Type is {0}", b.GetType());
}
}


/*

This code produces the following output.

mybase: Type is MyBaseClass
myDerived: Type is MyDerivedClass
object o = myDerived: Type is MyDerivedClass
MyBaseClass b = myDerived: Type is MyDerivedClass

*/
回复
a7lang 2004-12-29
澄清概念
回复
xxdneu 2004-11-06
一个是语句一个是object的方法,typeof是语句,根据类名来得到Type对象,而getType是个方法,是对象的方法

Type t = typeof(String);

String s="";
Type t = s.GetType()
回复
Yok 2004-11-06
typeof(类名)
变量名.GetType()
回复
lonelydreamsym 2004-11-06
看看,谢了
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-11-06 12:52
社区公告
暂无公告