C#拾遗

来源:互联网 发布:html js select 添加 编辑:程序博客网 时间:2024/06/05 02:48


           设计模式看下来,由于没有很系统的锻炼C#的代码,虽然大体上能明白,但是总有些概念以及技术性东西不甚明了。既然遇到了,本着不求甚解的态度,将其记录在案。无它,权当一次笔记。

        一、正则表达式(解释器模式)

              概念:是指对字符串操作的一种逻辑公式,即用事先定义的特定字符、及这些特定字符的组合,组成一个“规则字符串”。这个规则字符串用以表达对字符串的一种过滤逻辑。

              特点:1、灵活性、逻辑性和功能性非常强;2、可以迅速的用极简单的方式达到字符串的复杂控制;3、对刚接触的人,比较晦涩难懂。

               正则表达式的构建元素、概念:元字符、字符转义、重复、字符类、分支条件、分组、反义、反向引用、领款断言、负零款断言、注释、贪婪与懒惰、处理选项、递归匹配……这里不对这些概念进行解析,大家可以参考:http://deerchao.net/tutorials/regex/regex.htm#metacode

        从以上这些比较官方的内容里不是很容易明白正则表达式是什么东西。通俗的说,正则表达式就是通过构建元素的不同组合而表达的字符串匹配规则。比如,windows文件系统中的文件查询即查找是.doc的所有文件。那么*.doc就是一个简单的正则表达式。再如,记事本和word中查找和替换的功能也是正则表达式的简单应用。

        二、抽象语法树(解释器模式)

               概念:抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示。

               特点:抽象语法树不依赖于源语言的语法

               对于这个抽象语法树,如何使用目前没有概念,也不是很好把握具体是什么东西。大家可以看看一下这个例子相信有助于大家理解。四则运算表达式:1+3*(4-1)+2 ,其抽象语法树如图所示:

 

      三、反射(抽象工厂模式)

              定义:这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:程序集(Assembly)、模块(Module)、类型(class)组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息。

             Assembly类可以获得正在运行的装配件信息,也可以动态的加载装配件,以及在装配件中查找类型信息,并创建该类型的实例;Type类可以获得对象的类型信息,此信息包含对象的所有要素:方法、构造器、属性等等,通过Type类可以得到这些要素的信息,并且调用之;MethodInfo包含方法的信息,通过这个类可以得到方法的名称、参数、返回值等,并且可以调用之。 
             简单理解为:程序运行时,实现类的实例化,或者获得类的信息。

 

原创粉丝点击