1、命名空间
可以认为类是属于命名空间的。
如果在当前项目中没有这个类的命名空间,需要我们手动导入这个类所在的命名空间。
1.用鼠标去点
2.alt+shift+f10
3.记住命名空间,手动的去引用
2、在一个项目中引用另一个项目的类
1.添加饮用
2.引用命名空间
3、值类型和引用类型
区别:
1.值类型和引用类型在内存上存储的地方不一样。
2.在传递值类型和引用类型的时候,传递方式不一样。
值类型我们称之为值传递,引用类型称为引用传递。
我们学的值类型和引用类型
值类型:int.double.bool.char.decimal.struct.enum
引用类型:string.自定义类.数组
存储
值类型的存储在内存栈中
引用类型存储在内存的堆中
3、字符串
1.字符串的不可变性
当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一块空间存储新值。
当程序结束后,gc扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁。
2.我们可以讲字符串看做是插入类型的一个只读数组。
tochararray();将字符串转换为char数组
new string(char[]chs):能够将char数组转换为字符串
4、字符串提供各种方法
1.length:获得当前字符串中字符的个数
2.toupper():将字符串转换成大写
3.tolower():将字符串转换成小写
4.equals(lessontwo,stringcomparison。ordinalignorecase):比较两字符串,忽略大小写
5.split()分割字符串,返回字符串类型的数组
6.substring():解决字符串,在截取的时候包含要截取的那个位置
7.indexof():判断某个字符串中第一次出现的位置,如果没有返回值-1.值类型和引用类型在内存上存储的地方不一样
8.LastIndexOf():判断某个字符串在字符串中最后一次出现的位置,如果没有同样返回-1
9.StartsWith():判断以....开始
10.EndsWith():判断以...结束
11.Replace():将字符串中某个字符串替换成一个新的字符串
12.Contains():判断某个字符串是否包含指定的字符串
13.Trim():去掉字符串中前后的空格
14.TrimEnd():去掉字符串中结尾的空格
15.TrimStart():去掉字符串中前面的空格
16.string.IsNullOrEmpty():判断一个字符串是否为空或者为null
17.string.Join():将数组按照指定的字符串连接,返回一个字符串
5、继承
我们可能会在一些类中写一些重复成员,我们可以将这些服用成员单独封装到一个类中,作为这些类的父类。
student.teacher.diver. 子类 派生类
person 父类 基类
子类继承父类,那么子类从父类那里继承过来了什么
首先,子类继承了父类的属性和方法,但是子类并没有继承父类的私有字段
问题:子类有么有继承父类的构造函数
答:子类并没有继承父类答构造函数,但是子类默人会调用无参的构造函数,
创建父类对象,让子类可以使用父类中的成员
所以,如果在父类中重新写一个有参数的构造函数之后,那个无参数的就被干掉了
子类久调用不到,所以子类会报错。
解决办法
1.在父类中重新写一个无参的构造函数
2.在子类中显示的调用父类的构造函数,使用关键字 base()
6、继承的特性
1.继承的单根性:一个子类只有一个父类
2.继承的传递性
7、查看类图
8、object是所有类的基类
9、new关键字
1.创建对象
2.隐藏从父类那里继承过来的同名成员。
隐藏的后果就是子类调用不到父类的成员
继承
继承的构造函数
值类型和引用类型
字符串的不可变性
、