ASP.NET动态网站制作,19-- C#

前言:C#的第二次课,依旧讲解C#的基础知识。

内容

  1.GC:垃圾回收机制,可以回收托管模块中的垃圾。

  2.值类型和引用类型:

   (1)值类型:所有的数值类型都是值类型,如int,byte,short,long,char,bool,float,double,枚举。计算机最小的信息单位是byte(字节),一个字节是8位(bit),一个字母是一个字节。

   (2)引用类型:对象,string,object,数组。C#有两个内置的引用类型:object类型和string类型。object是所有类型的父类,可以将任何类型的值赋值给object类型的变量;string类型是字符串类型,该对象一旦创建,内容就不可以更改,它是不可变的。

   引用类型的实例化使用关键字new。

   (3)值类型是值的拷贝,引用类型是地址的引用。

   (4)变量都是存放在内存中的,内存中包含堆和栈。所有的值类型是存储在栈里的,值类型的赋值就是值的拷贝;引用类型的值是存储在堆里的,栈里面存放的是它的引用地址,引用类型的赋值,实际上就是地址的拷贝。

   (5)要去调用一个类里面的非静态成员(字段、方法),需要通过一个类的对象去调用:Person p1 = new Person(); p1.age=20;;若要去调用一个类里面的静态成员,只需要通过类去调用就行:Person.age = 20;。静态变量存储在静态区。

   (6)当实例化一个类的对象的时候,堆会将类里面所有的非静态成员(字段、方法)生成。如果出现“未将对象引用到对象的实例”异常,就是没有将对象实例化或者对象为空,其在堆里没有内容。

   (7)当去实例化一个类的对象时,首先会在堆里面检索该类的对象是否存在。,如果存在就会拷贝一份。

   (8)当一个类是静态类的时候,类里面所有的成员都是静态的。

  3.装箱、 拆箱:

   (1)装箱:把值类型转换成引用类型。

1 int i = 10;
2 string s = i.ToString();

   (2)拆箱:把引用类型转换成值类型。

1 string s = "10";
2 int i = Convert.ToInt32(s);

   (3)程序中应该尽可能地避免装箱和拆箱,因为这两个过程中可能会造成一些效率的损耗。

  4.常量、变量:变量包含静态变量、成员变量--全局变量、局部变量。

  5.数据类型转换:

   (1)隐式转换:低精度类型转为高精度类型,直接转。

1 int i = 9;
2 double d = i;

   (2)显式转换:高精度类型转换为低精度类型,必须指明要转换的目标类型,由于数据的差异,可能丢失部分数据。

1 double d = 12.34;
2 int i;
3 i = (int)d;

  6.运算符:

   (1)算术运算符:+,-,*,/,%,++,--。

   (2)赋值运算符:=,+=,-=,*=,/=,%=,??。

a=b??c;    // b 为 null 则 a=c,不为 null 则 a=b

   (3)关系运算符:==,!=,<,<=,>,>=。

   (4)逻辑运算符:!,&,|,^,&&,||。

   (5)优先级:一元运算符<二元运算符<关系运算符<逻辑运算符<赋值运算符。

  7.string类:

   (1)string可以看成是一个字符数组。

1 string s = "hello";
2 char[] c = s.ToCharArray();

   (2)str.Lenght表示字符串里面字符的个数。

   (3)字符串对象一旦被创建,这个对象就不能被修改。

   (4)在创建一个字符串对象的时候,会先去字符串数据池(在堆中)寻找是否有相同的字符串内容对象,如果有,就直接让变量指向这个对象,如果没有,就创建新的对象。

   (5)字符串常用的方法:

    Compare():比较两个字符串的大小。

Console.WriteLine(String.Compare("aa","bb"));

    返回值是-1。字符串比较的是ASCII码值的大小。

    Equals():判断两个字符串是否相同,若相同则返回true,否则返回false。

    StartsWith()/EndsWith():判断一个字符串是否以一个字符串开头或结尾,返回值是true或false。

    IndexOf()/LastIndexOf():某个指定的字符或者字符串第一次或者最后一次出现的位置。

    Substring():截取字符串。

    Insert():插入在指定位置的字符串。

    PadLeft()/PadRight():左侧或者右侧填充特定字符来达到指定的长度。

    Remove():删除制定长度的字符串。

    Trim()(移除所有前导空白和尾部空白)、TrimStart()(移除所有前导匹配项)、TrimEnd()(移除所有尾部匹配项)。

    copyTo():将指定数目的字符复制到字符数组指定位置去。

    Replace():替换方法。

后记:预习、复习,课外学习。