A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

老是分不清  求高人点化

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

4 个回复

倒序浏览
http://blog.csdn.net/ghfsusan/article/details/3702314
回复 使用道具 举报
大哥诶,真问题问得有点太大了吧,这两个,估计任何一个都可以上一节课了,呵呵呵
回复 使用道具 举报
额 只是要 写两个 简单的实例  就可以了
回复 使用道具 举报
反射
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Text.RegularExpressions;
  6. using System.Reflection;

  7. namespace 练习1
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {

  13.             Person p = new Person("zdp", 19, "男");
  14.            
  15.             Console.WriteLine("{0},{1},{2}", p.Age, p.Name, p.Sex);
  16.             //p.sayhi();
  17.             Student stu = new Student();
  18.             stu.sayhi();
  19.             Type type = typeof(Person);
  20.                      
  21.             #region 获取类中的构造函数
  22.             Console.WriteLine("获取类中的构造函数=============");
  23.             ConstructorInfo[] ci = type.GetConstructors();//获取类中所有构造函数
  24.             foreach (ConstructorInfo item in ci)//遍历每一个构造函数
  25.             {
  26.                 ParameterInfo[] ps = item.GetParameters();//取出每个构造函数的所有参数
  27.                 foreach (ParameterInfo pi in ps)//输出每个构造函数的参数
  28.                 {
  29.                     Console.WriteLine(pi.ParameterType.ToString() + " " + pi.Name + " ");
  30.                 }
  31.                 Console.ReadKey();
  32.             }
  33.             #endregion

  34.             
  35.             #region 查看类中的属性:
  36.             Console.WriteLine("查看类中的属性=============");
  37.             PropertyInfo[] pis = type.GetProperties();
  38.             foreach (PropertyInfo pi in pis)
  39.             {
  40.                 Console.WriteLine(pi.Name);
  41.             }
  42.             #endregion

  43.             
  44.             #region 查看类中的public方法
  45.              Console.WriteLine("查看类中的public方法=============");
  46.             MethodInfo[] mis = type.GetMethods();
  47.             foreach (MethodInfo mi in mis)
  48.             {
  49.                 Console.WriteLine(mi.ReturnType + " " + mi.Name);
  50.             }
  51.             #endregion

  52.             #region 查看类中的public字段
  53.             Console.WriteLine("查看类中的public字段 =============");
  54.             FieldInfo[] fis = type.GetFields();
  55.             foreach (FieldInfo fi in fis)
  56.             {
  57.                 Console.WriteLine(fi.Name);
  58.             }
  59.             #endregion

  60.             #region 用反射生成对象,并调用属性、方法和字段进行操作
  61.             Console.WriteLine("用反射生成对象,并调用属性、方法和字段进行操作 =============");
  62.             //动态生成一个实例
  63.             object obj = Activator.CreateInstance(type);
  64.             
  65.             FieldInfo fi2 = type.GetField("id");
  66.             fi2.SetValue(obj, 2);

  67.             //取得Age属性
  68.             PropertyInfo fi1 = type.GetProperty("Age");
  69.             //给Age属性赋值
  70.             fi1.SetValue(obj, 18, null);
  71.             

  72.             //取得Name属性
  73.             PropertyInfo pi1 = type.GetProperty("Name");
  74.             //给Name属性赋值
  75.             pi1.SetValue(obj, "grayworm", null);

  76.             PropertyInfo pi2 = type.GetProperty("Sex");
  77.             pi2.SetValue(obj, "男", null);

  78.             //取得sayhi方法
  79.             MethodInfo m = type.GetMethod("sayhi", BindingFlags.NonPublic | BindingFlags.Instance);
  80.             //调用sayhi方法
  81.             m.Invoke(obj, null);

  82.             //输出Name,Sex
  83.             Person pp = (Person)obj;
  84.             Console.WriteLine("姓名={0},性别={1},年龄={2},id={3}",pp.Name,pp.Sex,pp.Age,pp.id);
  85.             #endregion
  86.         }
  87.     }
  88.     class Person
  89.     {
  90.         private string name;//字段
  91.         public string Name//属性
  92.         {
  93.             get;
  94.             set;
  95.         }
  96.         private int age;
  97.         public int Age
  98.         {
  99.             get;
  100.             set;
  101.         }
  102.         private string sex;
  103.         public string Sex
  104.         {
  105.             get;
  106.             set;

  107.         }
  108.         public Person()
  109.         {
  110.             Console.WriteLine("dgdfg");

  111.         }
  112.         public Person(string name, int age, string sex)
  113.         {
  114.             this.Name = name;
  115.             this.Age = age;
  116.             this.Sex = sex;

  117.         }
  118.         private void sayhi()
  119.         {
  120.             Console.WriteLine("我是zdp");
  121.         }
  122.         public int id;
  123.         public int ID
  124.         {
  125.             get;
  126.             set;
  127.         }
  128.     }
  129.     class Student : Person
  130.     {
  131.         private double score;

  132.         public double Score
  133.         {
  134.             get { return score; }
  135.             set { score = value; }
  136.         }

  137.         public Student(double score, string name, int age, string sex)
  138.             : base(name, age, sex)
  139.         {
  140.             this.score = score;
  141.             Console.WriteLine("zilei");
  142.         }
  143.         public void sayhi()
  144.         {
  145.             Console.WriteLine("我是学生第三页");
  146.         }
  147.         public Student()
  148.         {
  149.             
  150.             Console.WriteLine("我是学生");
  151.         }
  152.     }
  153. }
复制代码
泛型
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Collections;

  6. namespace List泛型
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             int[] a = new int[] { 3, 4, 5, 6 };
  13.             int[] b = { 3, 5, 67 };
  14.             int[] c ;
  15.             c=new int[]{234,5,5676};
  16.             Person p1 = new Person("zdp", 21);
  17.             Person p2 = new Person("zdp2", 22);
  18.             Person p3 = new Person("zdp3", 23);
  19.             List<Person> list = new List<Person>();     
  20.             list.Add(p1);
  21.             list.Add(p2);
  22.             list.Add(p3);
  23.             ///List<Person> list = new List<Person>() { new Person("zdp", 21), new Person("zdp2", 22), new Person("zdp3", 23) };
  24.             List<int> list1 = new List<int>() { 4, 6, 7 };
  25.             List<int> list2 = new List<int>() { 4,3, 1, 2 };
  26.             List<int> list3 = new List<int>();
  27.             list3.AddRange(list1);
  28.             //创建一个List集合
  29.             List<int>[] listArray = { list1, list2, list3 };
  30.             Console.WriteLine("List数组"+listArray[0][0]);
  31.             for (int i = 0; i < list2.Count; i++)
  32.             {
  33.                 if (!list3.Contains(list2[i]))
  34.                 {
  35.                     list3.Add(list2[i]);
  36.                 }
  37.             }         
  38.             Console.WriteLine("{0}:{1}",list[0].Name,list[0].Age);
  39.             Console.WriteLine(list3[5].ToString());         
  40.             string[] array=new string[]{"1","3","0"};
  41.             //ArrayList list4 = new ArrayList();
  42.             ArrayList list4 = new ArrayList(array);
  43.             //list4.CopyTo(array);
  44.             ArrayList list5 = ArrayList.Adapter(array);
  45.             //ArrayList list6 = new ArrayList();
  46.             //list6.CopyTo(array);
  47.             
  48.             for (int i = 0; i < list5.Count; i++)
  49.             {
  50.                 Console.WriteLine(list5[i]);
  51.             }
  52.         }
  53.     }
  54.     class Person
  55.     {
  56.         private string _name; //姓名
  57.         private int _age; //年龄
  58.         //创建Person对象
  59.         public Person(string Name, int Age)
  60.         {
  61.             this._name = Name;
  62.             this._age = Age;
  63.         }
  64.         //姓名
  65.         public string Name
  66.         {
  67.             get { return _name; }
  68.             set { _name = value; }
  69.         }

  70.         //年龄
  71.         public int Age
  72.         {
  73.             get { return _age; }
  74.             set { _age = value; }
  75.         }

  76.     }
  77. }
复制代码
以前写的 你可以参考一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马