分类:
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); } }
评价