关闭

C#和VB.NET类型相关知识汇总

发表于:2011-3-14 09:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Alex Leo    来源:51Testing软件测试网采编

#
DotNet

  1、GetType

  (1)Object.GetType()

  该方法是所有对象都有的方法,MSDN中的解释是“获取当前实例的 Type。”。该方法的返回值是System.Type类型的实例,表示当前实例的确切运行时类型。

  例如:

  • C#: 
  • intnumber=3
  • System.Typet=number.GetType();
  • Console.WriteLine(t.FullName); //输出:System.Int32 
  • VB.NET: 
  • Dim number asInteger=3
  • Dim t AsSystem.Type=number.GetType() 
  • Console.WriteLine(t.FullName) '输出:System.Int32
  •   (2)VB.NET类型中的GetType方法

      参考MSDN中的解释:返回指定类型的 Type 对象。Type 对象提供有关类型的信息,如类型的属性、方法和事件。

      用法:GetType(typename),其中typename是需要获取其信息的类型的名称。

      例如:

  • Dim t AsSystem.Type=GetType(Integer) 
  • Console.WriteLine(t.FullName) '输出:System.Int32
  •   (3)Type.GetType系列方法

      System.Type类型中的GetType方法一共有4个,其中不带参数的GetType()是继承自Object的实例方法,其他三个是静态方法(C#中为static,VB.NET中为Shared)。实例方法不用介绍了,就是Object.GetType()。静态方法是通过类型名称的字符串获取System.Type。MSDN中的解释有一大篇,这里只给出简单示例:

  • C#: 
  • System.Typet=Type.GetType("System.Int32"); 
  • Console.WriteLine(t.FullName); //输出:System.Int32 
  • VB.NET 
  • Dim t AsSystem.Type= Type.GetType("System.Int32"); 
  • Console.WriteLine(t.FullName) '输出:System.Int32
  •   注意这里的类型名称必须是包含命名空间的全名,即System.Type的FullName,不能是C#或者VB.NET中的类型名称,如C#中的"int"或者VB.NET中的"Integer"

      2、typeof

      在C#和VB.NET类型中都有typeof关键字,但它们的用法却不一样。

      C#中typeof相当于VB.NET中的GetType,用于获取指定类型的 Type 对象。

      用法

  • System.Typet=typeof(int); 
  • Console.WriteLine(t.FullName); //输出:System.Int32
  •   VB.NET类型中的TypeOf则总是与Is关键字一起用于构造TypeOf…Is表达式。MSDN中对该关键字的解释是:比较对象引用变量与数据类型。需要注意的是该表达式只能针对引用类型,如果把下面的示例中的i声明为Integer则会出错。

      VB.NET用法:

  • Dim i AsObject=2
  • Console.WriteLine(TypeOf i Is Integer) '输出:True 
  • Console.WriteLine(Typeof i Is Double) '输出:False
  • 51/512345>
    《2023软件测试行业现状调查报告》独家发布~

    关注51Testing

    联系我们

    快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

    法律顾问:上海兰迪律师事务所 项棋律师
    版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
    投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

    沪ICP备05003035号

    沪公网安备 31010102002173号