第11天知识点总结

正则表达式匹配读取网页的时候

href="(.+?)"    //尽可能匹配

href="([^"]+)"//不包含引号的匹配

如果是这样<a href="baidu.com"></a><a href="hao123.com"> </a>

涉及到非开发模式的是后会影响一定的效率,所以使用href="([^"]+)"//不包含引号的匹配会好一些

  static void Main(string[] args)
        {
            //读取文件内容,不加Encoding.Default时会乱码
            string names = File.ReadAllText("百家姓.txt",Encoding.Default);//文件内容全部读取

            //正则表达式
            string regex = @"△(.+)";
            MatchCollection ms = Regex.Matches(names,regex);
            foreach (Match m in ms)
            {
                if (m.Success)
                {
                    Console.WriteLine(m.Groups[1].Value);
                }
            }
            Console.ReadKey();
        }

 

 

1.var介绍

会根据第一次赋值确定类型

注:

  ->声明是必须赋值

  ->并且不是复制后还可改变,只是由于第一次赋值由编译器根据值为变量确定类型

  ->在程序中一般少用var(在linQ中会常用到),通篇var不利于代码的维护

  ->不允许定义时,不确定类型

在定义数组的时候      var num=new int[]{1,2};

 

2.匿名类型(*)

在某些特定的技巧中会使用到匿名类型,其类型带有很强的灵活性,主要是配合查询结果,绑定数据

语法:

  var obj = new

  {  //成员--只能写属性

  }

 

3.初始化器

  回忆数组如何定义初始化?

  int[] nums = new int[3] {1,2,3};

  int[] nums = new int[] {1,2,3};

  int[] nums={1,2,3};

  数组语法

  int[] nums=new int[10];

  for(int i=0;i<nums.Lenght;i++)

  {

    nums[i]=....

  }

在定义时int[] nums = new int[3] {1,2,3};后面的{1,2,3};就是一个初始化器

 初始化器

  数组有,(int[] nums = new int[3] {1,2,3};)

  class Program
    {
        static void Main(string[] args)
        {
         //1.集合--初始化器
            List<int> list = new List<int>() {1,2,3,4,5,6,7,8,9,0 };
           
            
         //2.类--初始化器
            //对应构造方法
            Person p = new Person() { Name = "张三", Gender ='', Age = 18 };

            //自动属性
            List<Test> listTest = new List<Test>();
            listTest.Add(new Test() { Name = "张三" });


            //3结构--初始化器
            MyPoint point = new MyPoint() { X = 10, Y = 20 };

        }
    }


    //构造方法创建类
    class Person
    {
        protected string _name;
        protected int _age;
        protected char _gender;
        public Person(int age,string name,char gender)
        {
            _name = name;
            _age = age;
            _gender = gender;
        }
        public Person()
        {

        }

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }

        public char Gender
        {
            get { return _gender; }
            set { _gender = value; }
        }


    }

    //没有构造方法,只有自动属性
    class Test
    {
        public string Name{ get; set; }
    }


    //结构
    struct MyPoint
    {
        public int X;
        public int Y;
    }
}

 

4.扩展方法

  方法中带向下小箭头的方法-----是外部添加的方法(理解为自己添加的方法)

  语法

   -》 静态类与静态方法

   -》方法第一个参数为对象参数

    记住一个字符串匹配的例子emall

未完,,等待书写

 

posted @ 2016-11-11 00:28  M_Q  阅读(297)  评论(0编辑  收藏  举报