标签:
前言: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():替换方法。
后记:预习、复习,课外学习。
标签:
原文地址:http://www.cnblogs.com/zoe-yan/p/4903726.html