zoukankan      html  css  js  c++  java
  • 反射和正则基础

    一、反射
    a)通过反射可以动态地创建对象、赋值或者调用方法。MVC、EF等各种框架都会用到反射,还有VS的智能感知、监视功能也利用了反射。
    反射的基础类为Type,每个类对应一个Type对象,每个方法、属性分别对应MethodInfo和PropertyInfo对象,这些就是类、方法、属性的元数据(Meta Data)。
    b) 获取一个类的Type对象有下面几种方法,可根据场景需要选择适合的方式:
    var p1 = new Person();
    //1 通过实例化后的对象获取
    var t1 = p1.GetType();
    //2 通过类直接获取
    var t2 = typeof(Person);
    //3 通过类所在的程序集获取
    var t3 = Type.GetType(" _6._1_Reflect.Person");

    c) Type类的方法很多,这儿学习GetMethod的基本使用,Person类的Hello方法有两个重载
    class Person {
      public void Hello() {
        Console.WriteLine("Hello I'm **");
      }
      public void Hello(string s) {
        Console.WriteLine(s);
      }
    }

    Type t1 = typeof(Person);
    CreateInstance用于创建类的实例
    var obj = Activator.CreateInstance(t1);
    GetMethod用于取得某个方法,要区分两个Hello重载,需要在第二个参数中传入签名信息以帮助识别,一个string参数时传入new Type[] { typeof(string)},无参时传入new Type[0]。
    MethodInfo miHello = t1.GetMethod("Hello", new Type[0]);
    miHello.Invoke(obj, new object[0]);
    MethodInfo miHello1 = t1.GetMethod("Hello", new Type[] { typeof(string)});
    miHello1.Invoke(obj, new object[] { "s" });
    获取到方法后,使用Invoke方法来调用,同时可以传入参数。

    二、正则
    正则用于匹配字符串,正则相关的知识博大精深、用途广泛,先把匹配、校验字符串这样的用途学会吧。
    正则的基本元字符有:
      . 除了 以外的任意的单个字符
      [0-9] 0-9之间的任意一个数字
      d 数字
      D 非数字
      a 空白
      S 非空白
      w 小写字符和数字、汉字
      W 特殊符号
      对于.等特殊字符转义
      () 提升优先级、提取组
      | 或者
      + 出现1到无限次
      * 出现0到无限次
      ? 出现0-1次
      {1,2}一次或两次,{1,} 最少一次
      ^ 开始
      $ 结束
    先了解一点点,下篇继续学习正则。另外SQL中like语句除了常用的%外,还有_,%用于匹配任意多个字符,_则用于匹配一个字符。


    学习资料:如鹏网.net提高班http://www.rupeng.com/News/10/4603.shtml

  • 相关阅读:
    PHPMailer 发送邮件
    Joomla with blog modification
    PHPGD库分类整理
    转 memcache保存php的session 解决多服务器的session问题
    PHP缓存检查
    PHP HMVC框架kohana 小结1
    安装新版ganglia web UI 笔记。
    oracle sqlserver & oracle temp
    db mysql error list / mysql tools / mysql error_list
    oracle sql statement temp
  • 原文地址:https://www.cnblogs.com/zhixin9001/p/7701855.html
Copyright © 2011-2022 走看看