异常类与string

 

1、跳转语句:throw,goto(能不用就不用),return,continue(跳出本次循环),break(跳出全部循环);

2Switch()中必须放量,变量可为int,char,string;

3Foreach(var v in  arr){}  其中,v是代表arr元素

4For(int i ; ;)可以实现加减的类型都可以代替 int  i

如:  for(DateTime dt=DateTime.Parse("2010-02-01"); dt< DateTime.Parse("2010-03-31"); dt.AddDays(1))

              {

                   Console.WriteLine(dt);

              }

5、异常:

Try……catch

Try…… Finally

Try……catch……finally

1Finally在任何情况下都会执行的;即使catch里面有(return);

2)自定义异常类:

1.分层:

显示层  业务处理层 数据处理层

2.步骤:

(1)  定义异常(写项目前首先定义一个大的异常类);(2)定义业务,不符合业务的抛出异常(业务处理层);(3)使用:捕捉异常(在显示层)。

 

例如:

 

//异常类:

class BusException:Exception

    {

        public BusException()

        {

 

        }

        public BusException(string  message)

            : base(message)

        {

            File.AppendAllText(@"F:/a.log",message+DateTime.Now+"\r\n")//记录日志;

        }

    }

 

 

//业务层,若出现异常,抛出

class OutMoney

    {

        public static double QuKuan(double temmoney ,double money)

        {

           

            if (money >= temmoney)

            {

                return money - temmoney;

            }

            else

            {

                throw new BusException("取款金额大于存款额金额!");

            }

        }

    }

 

 

//显示层,捕捉异常

class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("请输入取款金额:");

            double temmoney = double.Parse(Console.ReadLine());

            try

            {

                Console.WriteLine(OutMoney.QuKuan(temmoney,4000));

            }

            catch(BusException e )

            {

                Console.WriteLine(e.Message);

            }

           

        }

      

}

运算符:

位运算:与,或,异或,

与遇零为零;或遇11

异或同为零,求补全返转;

移位最麻烦,除头尾补零。                     

(左移运算将操作数左移,高位被丢弃,低位顺序补0

 

String

1、两性:(1)不可变性(一旦定义,就是不可变的,如果字符串发生了变化,就生成新的字符串)(2)留用性(如果字符串相同,可能共用一个字符串)

2、由不可变性可知:多个字符串拼接时,由于是两个两个运算,中间会生成多个string,效率低,最好别这么做;

3string 常用方法:str.GetType()str.GetType()

str.PadLeft(20, '*')   str.Remove(2)    str.Replace("aa", "bbb")     str.Split(' ')

str.StartsWith("aa")  

string.format(“{0:c4}”,123);

datetime.now.tostring(“yyyy-MM-dd  hh:mm:ss”)

4、转义字符:string str=@”F:\a\a\a.txt”;

5stringBuilder:System.Text命名空间下,可以对字符执行动态操作,通过维护一个char类型的数组来实现对字符串的操作;

导致;stringbuilder分配新对象有两种情况:

(1)当试图动态构造一个字符串,而它的长度又超过了事先设置的容量时;

(2)当调用 stringbuildertostring()方法后,又要修改该变量时;

 

6string stringbuilder:(牺牲空间换取性能)(面试

1Concatappendformat方法都可以实现将数据追加到现有的string/stringbuilder后;

2string后追加字符串,是拿该字符串和追加

3

7、编码  万国码