1.构造函数
- 类名首字母大写
- 构造函数:可以用来创建对象,并在构造函数中对对象进行初始化(简化初始化过程--给对象的每个属性赋值);构造函数可以有重载;类本身会有一个默认的、无参的构造函数,当你写了一个(有参或者无参的构造函数时),默认的无参的构造函数都被干掉了;
-
构造函数是一个特殊的方法
1)构造函数没有返回值,连void也没有
2)构造函数名必须与类名一致
3)构造函数的访问修饰符必须是public(若是private,则创建对象时无法对对象进行初始化)
4)创建对象的时候会执行构造函数
2.new关键字
- new关键字
Person zsPerson = new Person();
new帮助我们做了三件事:
1)在内存中开辟一块空间
2)在开辟的空间中创建对象
3)调用对象的构造函数初始化对象
3.this关键字
-
this关键字
1)代表当前类的对象
2)在类当中显示地调用本类的构造函数(:this)
有参数的地方直接用参数(如name,chinese等),没有参数的地方赋默认的初值(如0,‘男’)
3)使用this可以区分局部变量和属性
4.析构函数
- 析构函数
格式:~析构函数名(){ }
1)当程序结束时,析构函数才执行,用于帮助我们释放资源(c#使用了GC垃圾回收器默认帮我们释放资源)
2)如果想立刻释放资源,自己显示的写一个析构函数
5.属性只读
实战:属性若是只读不可写的,那么通过字段来改变参数的值,传入参数可用构造函数
6.命名空间
- 命名空间
缺少命名空间时引用命名空间快捷键 : ALT+SHIFT+F10然后敲回车; -
在一个项目中引用另一个项目的类
1)添加引用
2)引用命名空间
7.值类型和引用类型
- 值类型和引用类型:计算机中变量大致可以分为两类,数值型变量和非数值型的变量;对c#而言,分为值类型和引用类型两种;
-
值类型和引用类型的区别:
1)值类型和引用类型在内存上存储的地方不一致;
2)传递值类型和引用类型的方式不一样,值类型称之为值传递,引用类型称之为引用传递;
3)值类型存储在内存的栈中,引用类型存储在内存的堆中;引用类型也在栈上开辟了空间存储堆的地址;
- 值类型:int,double,bool,decimal,char,struct,enum
- 引用类型:string,数组,自定义类和我们使用的所有类
8.字符串及相关函数
-
字符串
特性:
1)字符串的不可变性,如下图所示(当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一块空间存储新值)
注:当程序结束时,如果发现内存中有空间没有任何东西指向它(“如下图所示的“”张三”),此空间会被GC垃圾回收器删除;
2)可以将字符串看作是char类型的一个只读数组(即可以通过下标去访问字符串中的某一个元素)
ToCharArray():将字符串转换为char数组;
new String(char[] chs):能够将char数组转换为字符串;
-
StringBuilder:综上所述,如果程序中进行大量的拼接会导致内存里垃圾很多,这是可以使用StringBuilder类
-
字符串的方法
字符串.Length;
是获取字符串长度;
字符串.ToUpper();
是将字符串转换成大写;
字符串.ToLower();
是将字符串转换成小写;
字符串1.Equals(字符串2);
的结果相当于字符串1 == 字符串2;
字符串.Split();
用来分割字符串,返回的是字符串类型的数组;
注意:这里是string[]数组,所以会存在一项里面存多个字符(如下标为4的项存了“dfd”)
字符串.Contains();
返回值是bool类型,判断一个字符串里是否包含()l里出现的字符;
字符串.Replace(“被替换文字”,“替换文字”);
返回一个字符串,用来替换字符串中的某些内容;
字符串.Substring(截取字符串开始下标【,截取长度】);
返回一个字符串,用于截取字符串中的一部分;
字符串.StartsWith(“字符串”);
返回bool类型的变量,判断一个字符串是不是以()里的内容开始;
字符串.EndsWith(“字符串”);
返回bool类型的变量,判断一个字符串是不是以()里的内容结束;
字符串.IndexOf(“字符串”【,“搜索起始位置”】);
返回int类型的变量,找到()里的字符在字符串里第一次出现的位置,找不到返回-1;
注意:“搜索起始位置”是为了找到非第一次出现的字符所在位置,加了“搜索起始位置”这个选项后搜索时包括搜索的起始位置;
字符串.LastIndexOf(“字符串”);
返回int类型的变量,找到()里的字符在字符串里最后一次出现的位置;
LastIndexOf+Substring
组合使用,例如截取地址:
注意: 1.@符号的作用:取消\在字符串和路径中的转义作用
2."\"代表一个\,第一个\是转义符
3.使用index+1,因为要截取的是\后面的内容
字符串.Trim(“字符串”);
返回一个字符串,去掉字符串中所有的空格;
字符串.TrimEnd(“字符串”);
返回一个字符串,去掉字符串中,尾部的空格;
字符串.TrimStart(“字符串”);
返回一个字符串,去掉字符串中,头部的空格;
string.IsNullOrEmpty(“字符串”);
返回一个bool类型的变量,null或者是“”都会返回true;
string.Join(“指定分隔字符”,“字符或字符数组”);
返回一个字符串,将指定字符放到每个数组元素后面且最后一个元素后面不放;执行效果如下:
9.注意
如何把txt文档读到控制台上
1.先拿到控制台的路径string path = @"路径"
2.使用File.ReadALLLines(path,Encoding.Default);
读取文本中的所有内容,返回一个字符串数组;Encoding.Default是用来处理乱码;能用if-else解决的都可以用三元表达式来写;