zoukankan      html  css  js  c++  java
  • 6月29日课堂笔记

    值类型和引用类型的区别

       引用类型分配在堆里

       值类型分配在栈里

    1,将一个值类型变量赋给另一个值类型的变量时,将赋值包含的值。引用类型变量的赋值只是赋值对对象的引用,而不是赋值对象的本身

    2,值类型不可能派生出新的类型,所有的值类型均隐式派生自system.valuetype.但与引用类型相同的是,结构也可以实现接口。引用类型派生自object类

    3,值类型不可能包含null,然而可控类型功能允许将null赋给值类型

    4,每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值

    ============================

    装箱和拆箱是什么

      装箱:从值类型接口转换到引用类型

      拆箱:从引用类型转换到值类型

            object obj=null;引用类型

            obj=1; 把值类型转换成引用类型,装箱

            int i1=(int)obj;拆箱

    ===============

    什么是异常

       异常是指:程序运行时所遇到的自身逻辑错误或外部错误(如
    所访问的数据库没启动,硬件损坏等)所引起的程序非正常运行。
    所以异常的跑出是有条件的。如数组越界了才会抛出OutOfRangeException异常。

     包含系统定义的异常和自定义的异常

    ==============

    多态的实现有哪几种方式

       父类实现  抽象类  接口

    ============

    GC

       .net应用程序作为一个托管的运行机制。CLR里面有一个极其重要的部分就是垃圾回收

        刚刚生成的对象都是0代

       回收一次,那些没有被回收的对象叫编程1代  

       当有不需要的对象和代满了才开始进行回收

       每一代都有一个内存大小,内存的大小根据对象的大小决定

       0代,1代,2代   超出2代就异常

    ===========================

    如何抛出异常   异常是个类,对象

        throw new Exeption("异常信息");

     异常抛出到了哪里

       异常抛给调用他的方法

      如果该方法没有处理异常,就再往上抛

      finally  处理释放资源

    ====================================

    string

       字符串的定义方法以及数组使用

       string str="我是一个字符串";

       char[] chars={'1','2','3'};

    两个构造函数

       string str1=new string(chars);

       string str2=new string('c',3);

    字符串有个很特殊的使用方式,当做数组进行遍历

      for(int i=0;i<str,Length;i++)

    {

       Console>WriteLine(str[i]);

    }

    此时不能改变数组里的值,需要转换成char数组才能转换,字符串的不变性

    char[] chs=str.ToCharArray();

    =============

    常见的字符串属性与方法(参考msdn和老师发的文档)

    比较

        string str1="C#";

        string str2="c#";

    将字符串统一再比较。。。由于不可变性,是重新生成一个字符串,要有变量接受

       string s1=str1.ToUpper();//大写方法//小写方法ToLower

       string s2=str2.ToUpper();

    -----------------------------------

       int res=string.Compare(str1,str2);

       str1>str2    1
       str1=str2    0
       str1<str2    -1
      
        string.Compare(str1,str2,true);
     true表示不区分大小写
     -------------------------

       bool isRirht=str1.Equals(str2,StringComparison,OrdinalIgnoreCase);     不区分大小写的比较

       bool isRirht=str1.Equals(str2);

    -------------------

     字符串修整

        去掉两端的空格

         string str="    123    " ;

         string str1=str.Trim();

       去掉字符

         string stemp="{1223}";

         string temp=stemp.Trim('{','}');

    扩展的方法    TrimEnd    TrimStart

    --------------------------

    合并与分割

       合并

       string[] strs={"密西",“卡卡”,“拉拉”};

       string str=string.Join("|",strs);

      分割

       string path=@"C:\Windows\system32\1.dll";

       string[] paths=path.Split('\\');

       str.Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries);

    -------------------------------

     字符串的查找

       string str=@"D:\Music\孙燕姿_专辑\孙燕姿_天黑黑.mp3“;

      bool isRirht=str.Contains("孙燕姿");

    查找的字符串在哪里

      int index=str.IndexOf("孙燕姿");

      int index=str.IndexOf("孙燕姿",10);
      默认情况下从字符串开始进行查找,找到第一个结束,返回位置
      可以使用第二个参数,表示从字符串的第几个字符开始查找
      如果没有找到返回-1;
     
      str.IndexOfAny(char[] anyOf,startIndexof);
      示例
         string str="1mm2mn3nd45ff6";
         char[] nums={'1','2','3','4','5','6'}
          int index=str.IndexOfAny(nums,0);
     
      示例LastIndexOf
             string path =@"D:\Music\孙燕姿_专辑\孙燕姿_天黑黑.mp3";
              int index=path.LastIndexOf("孙燕姿");

    -----------------

    求子字符串

    //Substring()
    //1,string str.Substring(index)
    //从index开始到结束的所有部分
      int index=str.LastIndexOf('\\');
      string temp=path.Substring(index+1);
    //2,string str.Substring(index,Length)
       string data="2012年6月29日" ;
       int index=data.IndexOf('月');
       string temp=data.Substring(index+1,2);

    ----------------------------

    字符串的插入  移除和挑换
      //Insert  插入
      string="012345";
      str=str.Insert(3,"我");
      //Remove(index,length)  移除  Remove(index)默认移除index后的所有字符
      str=str.Remove(3,1);
      //替换  Replace("原字符串","新字符串")
      string temp=data.Replace("年","-").("月","-").Replace("日","-");

    ----------------------

    判断开始与结尾
      string path=@"D:\123\344\54\22.Mp3";
      bool b=path.EndsWith(.Mp3); 
      bool b=path.StartsWith(string str);

    -------------------

    格式化字符串  string.Format();
    string str=string.Format("{0}+{1}",1,2);

    ================

    StringBuilder  动态字符串,可变的。字符串拼接
       //Append        (追加)
       //ToString()
       // AppendLine    (换行)
       //AppendFormat  (格式化)
       StringBuilder sb=new StringBuilder();

    =============================

    string temp = string.Empty;//表示空字符串,只读

    ========================

    Equals  是可以重写的    

    class MyClass   

      {     

            public int num;

            public override bool Equals(object obj)     

        {           

                MyClass m = obj as MyClass;      

                 if (m == null)         

              {                

                   return false;          

              }           

             return this.num == m.num;     

        }

            public static bool Equals(MyClass m1, MyClass m2)   

          {          

              return m1.num == m2.num;     

          }    

    }  

    Main函数        

               string str = "123";       

               string str2 = "123";             // 字符串拘留池(驻留池)

       

                //int i = 0;      

                //MyClass m1 = new MyClass();

                // bool isRight = str.Equals(str2);

                //MyClass m1 = new MyClass();          

              //m1.num = 10;           

               //MyClass m2 = new MyClass();         

               //m2.num = 10;

                // bool isRight = m1.Equals(m2);      

                 // bool isRight = MyClass.Equals(m1, m2);

                // ==           

                char[] chs = { '1', '2', '3'  }

                str = new string(chs);         

              // str2 = new string(chs);

                bool isRight = str == str2;

                 

          }   


     

  • 相关阅读:
    kali环境下如何安装最新版cobalt strike
    win10结束进程时拒绝访问的处理办法
    Windows下Postgresql数据库的下载与配置方法
    ubuntu下安装及配置git的方法
    运行和控制Nginx
    nginx安装(详解)
    ubuntu安装nginx
    在Windows安装运行Kafka
    linux下安装使用虚拟环境
    《操作系统真象还原》线程
  • 原文地址:https://www.cnblogs.com/349932030yin/p/2570557.html
Copyright © 2011-2022 走看看