C#知识补充(反射和特性)

本文详细介绍了C#中的反射和特性。反射允许程序在运行时查看和操作元数据,例如通过Type对象获取类的方法、字段和属性。同时,文章探讨了预定义特性如Obsolete和Conditional的使用场景,以及如何自定义特性。此外,还讲解了如何通过反射获取类所应用的特性。
摘要由CSDN通过智能技术生成

1:元数据
有关程序及其类型的数据即为元数据,被保存在程序的程序集中。
那么什么叫反射呢?程序在运行的时候,可以查看其它程序集或者自己本身的元数据,这个行为称之为反射。

要获取程序中元数据,可以用抽象类Type
2:Type抽象类
每个类都对应一个Type对象,这个Type对象保存了该类的方法,字段和属性等,比如定义一个类myClass,有
方法:fun1,fun2
私有字段:id,age
公有字段:publicField1,publicField2,publicField3Name
属性:Name, Name1, Name2

class myClass
    {
   
        //私有字段
        private int id;
        private int age;

        //公有字段
        public string publicField1;  //Type.GetFields()只能获取所有公共字段
        public int publicField2;
        public DateTime publicField3;

        //公有属性(注意C#中属性和字段有区别)
        public string Name {
    get; set; }
        public string Name2 {
    get; set; }
        public string Name3 {
    get; set; }
        /// <summary>
        /// get和set相当于
        /// private name;
        /// public Name
        /// {
   
        ///     get{return name;}
        ///     set{name=value;}
        /// }
        /// </summary>
        /// 
        
        public void fun1()
        {
   

        }
        public void fun2()
        {
   

        }
    }

可以通过类的对象获取其Type对象

myClass m = new myClass();
var type = m.GetType();

也可以通过直接获取其Type对象

var type
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值