while(true){
try{
break}
}
循环捕获异常,有异常直接catch,无异常跳出
while(true){
try{
break}
}
循环捕获异常,有异常直接catch,无异常跳出
1.函数重载
2.new是开辟地址,如何进行比较,比较的是在内存中的地址
3.如何重载
运算符重载关键字:operator
运算符首先要看重载的是什么符号,然后定义什么类型,都是bool
访问修饰符 static 返回值类型 operator 运算符(两边地址里边的值)
1.怎么调用父类的构造函数?
在方法后边+:base(),括号是父类的构造函数的参数
1.abstract抽象类
2.抽象函数,只有定义的方法,没有方法体
3.类前边加abstract就是抽象类
4.定义抽象类的方法
在抽象类中,定义抽象方法,只需要在返回值类型面前+abstract即可,没有方法体
5.抽象类不能实例化一个对象
6.抽象类可以利用子类构造
7.抽象类利用子类重写方法时,在返回值类型前加override
8.sealed密封类
9.密封类是不能被继承的
10.如何声明密封方法?
需要重写后才能密封,sealed o'v
静态
加上static就是静态
静态成员通过类来访问
静态变量存储在静态存储区
静态方法只能 访问静态数据
补充课程参考集合链接
1、https://www.runoob.com/csharp/csharp-array-class.html
2、https://learn.microsoft.com/zh-cn/dotnet/api/system.array?view=net-7.0
虚方法用父类定义的时候,显示的是子类方法
隐藏方法用父类定义的时候,显示的是父类方法
c#不支持多重继承
字符串常量保存在静态存储区
容量
添加
插入
集合类 列表List
List<int>list=new List<int>( ) ;
List<int> list=new List<int>( ) { 321,653,832 };
一个命名空间下可以创建多个类的,只是我们习惯上一个类一个文件。
operator 运算符重载关键字,后面跟要进行重载的运算符
静态函数只能使用静态数据 不能使用非静态成员
如果把类声明为静态的 ,静态类里面只能包含静态成员,静态成员是不能实例化的
( )
new 隐藏继承的成员
abstract 使用abstract修饰的类为抽象类,抽象类只能是其他类的基类,不能与sealed,static一起使用。abstract 可以修饰抽象类中的方法或属性,此时,方法或属性不能包含实现,访问权限不能为私有。抽象类不能被实例化。
sealed 使用sealed修饰的类为密封类,灭你各类违法被继承,不能和abstract,static一起使用。当sealed用于方法或者属性时,必须始终与override一起使用
static
使用static修饰的类为静态类,静态类所有成员都必须是静态的,不能与abstract、sealed
一起使用。
static可以修饰方法、字段、属性或事件,始终通过类名而不是实例名称访问静态成员
静态字段只有一个副本。l
静态类不能被实例化。
const
使用const关键字来声明某个常量字段或常量局部变量,必须在声明常量时赋初值。
不能与static一起使用,常量默认是static的,常量字段只有一个副本。
readonly
使用readonly关键字来声明只读字段。
只读字段可以在声明或构造函数中初始化,每个类或结构的实例都有一个独立的副本。
可以与static一起使用,声明静态只读字段。
静态只读字段可以在声明或静态构造函数中初始化,静态常量字段只有一个副本。
virtual
virtual关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。默认情况下,方法是非虚拟的。不能重写非虚方法。
override
要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用override修饰符。
重写的成员必须是virtual、abstract或override的。
子类不能比父类访问权限更高
当前项目想使用别的项目中的类需要: 1,添加别的项目的引用 2,引入命名空间 3,把类设置为public
调用子类的构造函数,会先调用父类的构造函数,
抽象类
C#允许把类和函数声明为 abstract抽象类 抽象类不能实例化,抽象类可以包含普通函数和抽象函数,(什么是抽象函数)抽象函数就是只有函数定义没有函数体。抽象函数本身也是虚拟的Virtual( 只有函数定义,没有函数体实现)
类是一个模板,抽象类就是一个不完整的模板,不能使用部位完整的模板去构造对象
( 为什么把某个类定义成抽象类呢 ) 因为我们知道这个类是不能构造对象的,我们把这个类我们把这个类声明称抽象类,其他人使用抽象类创建对象的时候语法就会不通过 为了防止别人误操作,所以我们就把他声明成抽象的
隐藏方法加关键字new ,就会隐藏父类方法
当我们通过父类声明的对象去调用这个方法的时候如果是虚方法的话依然会调用重写后的方法,如果是隐藏方法的话他就会调用父类里面的方法