官方文档:https://msdn.microsoft.com/zh-cn/library/system.type%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

C#中通过Type类可以访问任意数据类型信息。 

system.Type类以前把Type看作一个类,但它实际上是一个抽象的基类。

只要实例化了一个Type对象,实际上就实例化了Typc的一个派生类。

尽管一般情况下派生类只提供各种Type方法和属性的不同重载,但是这些方法和属性返回对应数据类型的正确数据,Type有与每种数据类型对应的派生类。

Type是许多反射功能的入口 。注意,可用的属性都是只读的:可以使用Type确定数据的类型,但不能使用它修改该类型

1.获取Type

 有3种方式:
  a.使用typeof运算符,如Type t = typeof(int);
  b.使用GetType()方法,如int i;Type t = i.GetType();
  c.使用Type类的静态方法GetType(),如Type t =Type.GetType("System.Double");

2.Type的属性:
  Name:数据类型名;
  FullName:数据类型的完全限定名,包括命名空间;
  Namespace:数据类型的命名空间;
  BaseType:直接基本类型;
  UnderlyingSystemType:映射类型;

3.Type的方法:
  GetMethod():返回一个方法的信息;
  GetMethods():返回所有方法的信息。

GetMember()和GetMembers()方法返回数据类型的任何成员或所有成员的详细信息,不管这些成员是构造函数、属性和方法等。

public static void Main()
{
//基本数据类型
Type intType = typeof(int); //属性
Console.WriteLine("intType.Name = " + intType.Name);
Console.WriteLine("intType.FullName = " + intType.FullName);
Console.WriteLine("intType.Namespace = " + intType.Namespace);
Console.WriteLine("intType.IsAbstract = " + intType.IsAbstract);
Console.WriteLine("intType.IsClass = " + intType.IsClass);
Console.WriteLine("intType.IsEnum = " + intType.IsEnum);
Console.WriteLine("intType.IsPrimitive = " + intType.IsPrimitive);
Console.WriteLine("intType.IsValueType = " + intType.IsValueType); //方法
MethodInfo[] methods = intType.GetMethods();
foreach (MethodInfo method in methods)
{
Console.WriteLine(method.DeclaringType + " " + method.MemberType + " " + method.Name);
}
}

参考文档:

https://www.cnblogs.com/kingdom_0/articles/2040855.html

http://www.knowsky.com/604653.html

c#基础之Type的更多相关文章

  1. Python基础(九) type元类

    python元类:type()    元类是python高阶语法. 合理的使用可以减少大量重复性的代码. 元类实际上做了以下三方面的工作: 干涉创建类的过程 修改类 返回修改之后的类 为什么使用元类? ...

  2. 1、js基础内容

    js基础内容 1. 编辑器 编译环境 浏览器 编辑软件 sublime DW H5Build Atom ==[注]尽可能多的去使用编辑器去编辑代码.== Html+css ==JS 逻辑== 比作建设 ...

  3. Linux 基础教程 25-命令和文件查找

    which     不管是在Windows还是Linux系统中,我们都会偶尔执行一些系统命令,比如Windows常见的cmd.ping.ipconfig等,它们的位置都在%systemdrive%中. ...

  4. 『GoLang』语法基础

    标识符 字母或下划线开头 之后只能出现数字.字母.下划线 大小写敏感 Go语言关键字 break default func interface select case defer go map str ...

  5. 培训第五天---JS

    &&与||的基础<script type="text/javascript"> var c = 4||3; alert(c);</script&g ...

  6. 微信jssdk,实现多图上传的一点心得

    一.首先在common.js里封装一个函数,在需要调用jsSDK的页面引用此方法即可实现微信的信息配置function signatureJSSDK() { var url = window.loca ...

  7. Head first javascript

    基础 <script type="text/javascript"> function validateNumber(value) { // Validate the ...

  8. Lesson 2: Dive Into Typography (排版)

    Lesson 2: Dive Into Typography (排版) 排版是字的艺术,是关于字的一切:字体.字号.行高.行长.字重(斜体/加粗/正常).字距(kerning).行距(leading) ...

  9. python之路:进阶篇

     > ) {        ;    }    printf(;} print i >>>      >>>  == :    name  ==   ==   ...

随机推荐

  1. React-propsType和defaultProps

    TodoItem.propTypes={ content:PropTypes.string, text:PropTypes.string.isRequired, handleDeleteItem:Pr ...

  2. git方法 GUI here

    注:stage changed是将所有修改归集到一次commit,如果要分开commit,则应该使用ctrl+t来一个一个文件的stage

  3. MySQL 字符串 分割 多列

    mysql如何进行以,分割的字符串的拆分 - 我有一个梦想 - CSDN博客https://blog.csdn.net/u012009613/article/details/52770567 mysq ...

  4. 上海上传数据重复-sftp端口关闭

    关键: (1) sftp的测试指令:sftp -oPort=2125 meituan@220.248.104.170 (2)让上海那边自己试了一下,也不行,他们自己重置了一下sftp的密码,我们可以登 ...

  5. 放弃幻想,全面拥抱Transformer:自然语言三大特征抽取器CNN/RNN/Transformer比较

    参考: https://zhuanlan.zhihu.com/p/54743941

  6. layui 日期初化一个月前

    lay('.test-item').each(function(){ var d = new Date(); laydate.render({ elem: this ,max: 0 ,value: d ...

  7. Element UI——本地引入iconfont不显示

    前言 前面因为本地引入Element UI导致了iconfont不显示,所以只好再去Element UI官网去扒下iconfot 步骤 进入官网 组件 | Element UI F12进入控制台,找到 ...

  8. codeforces 786E ALT

    题目链接:CF786E 输出方案暗示网络流 我们考虑最朴素的建图 由源点\(s\)连向所有人,容量为1:树上所有的边视作节点连向\(t\),流量为1:人向其路径上所有的树边连边,流量为\(inf\), ...

  9. bzoj 4571: [Scoi2016]美味 (主席树)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4571 题面; 4571: [Scoi2016]美味 Time Limit: 30 Sec   ...

  10. 集成Tomcat环境到Eclipse中

    集成Tomcat环境到Eclipse中 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装Eclipse环境 1>.安装JDK环境 官方地址:https://www.or ...