tnblog
首页
视频
资源
登录

使用反射 访问 相关属性,字段,方法等

4437人阅读 2021/4/1 10:07 总访问:115985 评论:0 收藏:0 手机
分类: MVC
//类
 public class Method
    {
        public string Father { get; set; }
        public string Chlidname { get; set; }
        public int? count { get; set; }
        public decimal? sum { get; set; }
        public decimal? max { get; set; }
        public double? min { get; set; }
        public double? Avg { get; set; }
        public void Hello()
        {
            Console.WriteLine("Hello------");
        }
        public void SayHello(string aa)
        {
            Console.WriteLine("Hello------"+aa);
        }
        private void SayHellod(string aa,int bb)
        {
            Console.WriteLine("Hello------" + aa);
        }
        public void SayHellodT<T>()
        {
            Console.WriteLine("Hello------" );
        }
    }
   static void Main(string[] args)
        {
            //使用反射可以根据字符串类型(类全名,类库名)
            //反射可以访问属性,而且可以访问私有属性,可以给私有属性赋值
            //反射可以访问字段,而且可以访问私有字段,可以给私有字段赋值
            //反射可以调用方法,而且可以调用私有方法
            Method method = new Method();
            //反射可以拿到属性
            //1拿到总属性
             var ytpe= method.GetType();
            
            //2拿到该对象里面的属性
            var ytpeinto = method.GetType().GetProperty("sum").PropertyType;         
            var x = typeof(Method).GetProperty("sum").PropertyType;
            Console.WriteLine(ytpe +"-----" +ytpeinto);
            
            //3调用duix里面的方法
            //1用实例的对象来调用
            method.GetType().GetMethod("Hello").Invoke(method, null);//Invoke(对象名,参数(调用的东西为空就写null))
            
            //2用对象名调用
            typeof(Method).GetMethod("Hello").Invoke(method, null);
            
            //3调用有参数的值
            typeof(Method).GetMethod("SayHello").Invoke(method, new object[] { "354346" });
            
            //4调用对象里面的私有     
            typeof(Method).GetMethod("SayHellod", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(method, new object[]{"5463",66});
            
            //5调用泛型类方法
            var typed = method.GetType().GetProperty("Avg").PropertyType;
            var TT = typeof(Method).GetMethod("SayHellodT");
            TT = TT.MakeGenericMethod(typed);
            TT.Invoke(method, null);
        }
    }


评价
.
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术