济源网站建设/百度灰色词排名代发
C#上课内容总结.4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术: VS、C#
作者:韩日九儿
撰写时间:2021/10/18
C#中的类型转换
一、类型转换概念。
C#是一门强类型语言,对类型要求比较严格,但是在一定的条件下也是可以相互转换的。
C#允许使用两种转换方式:隐式类型转换和显式类型转换。
1、隐式类型转换是C#默认的安全方式进行的转换,不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
--隐式转换主要是在整型、浮点型之间的转换。
--隐式数值转换实际上就是从低精度的数值类型到高精度的数值类型的转换。
2、显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制换换会造成数据丢失。
二、数据类型转换方法。
1、Parse()方法
C#Parse方法用于将字符串类型转换成任意基本类型。
如 基本数据类型.Parse(字符串类型的值);
2、Convert()方法
Convert方法是数据类型转换中最灵活的方法,它能够将任意数据类型的值转换成任意数据类型,前提是不要超出指定数据类型的范围。
如 数据类型 变量名 = convert.To数据类型(变量名);
三、拆箱和装箱。
装箱:将值类型转换为引用类型的操作。
拆箱:相应地将引用类型转换成值类型。
C#中的数组
一、一维数组。
定义一维数组的语法形式如下:
- 数据类型[] 数组名;
- 数据类型[] 数组名 = new 数据类型[长度];
- 数据类型[] 数组名 = {值 1,值2,…}
- 数据类型[] 数组名 = new 数据类型[长度]{值 1,值 2,…}
二、多维数组。
定义一维数组的语法形式如下:
- 数据类型[ , , …] 数组名;
- 数据类型[ , , …] 数组名 = new 数据类型[ m , n , …]{{ , , …},{ , , …}};
三、foreach遍历。
foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成。
in右边的项是集合名,in左边的项是变量名
如 foreach(数据类型 变量名 in 数组名)
{
//语句块;
}
四、字符串分割
Split() 方法
五、结构体类型(值类型)
访问修饰符 struct 结构体名称
{
结构体成员
}
六、枚举类型(值类型)
访问修饰符 enum 变量名 : 数据类型
{
值 1,
值 2,
}
C#中类的继承
- C#继承的特点:
- 派生类是对基类的扩展,派生类可以添加新的成员,但不能移除已经继承的成员的定义。
- 继承是可以传递的。如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中声明的成员。
- 构造函数和折构函数不能被继承,除此之外其他成员能被继承。基类中成员的访问方式只能决定派生类能否访问它们。private protected public
- 派生类如果定义了与继承而来的成员同名的新成员,那么就可以覆盖已继承的成员,但这并不是删除了这些成员,只是不能访问这些成员。
- 类可以定义虚方法、虚属性及虚索引指示器,它的派生类能够重载这些成员,从而使类可以展示出多态性。
- 派生类只能从一个类中继承,可以通过接口来实现多重继承。
继承的语法形式:
类的访问修饰符 修饰符 类名 : 父类名
{
类的成员
}
二、Object类简介。
Object类中提供了4个常用的方法,即Equals、GetHashCode、GetType以及ToString方法。
1、Equals方法:主要用于比较两个对象是否相等,如果相等则返回True,否则返回False。
2、GetHashCode方法:返回当前System.Object的哈希代码,每个对象的哈希值都是固定的。
3、GetType方法:用于获取当前实例的类型,返回值为System.Type类型。
4、ToString方法:返回一个对象实例的字符串,在默认情况下将返回类类型的限定名。对于值类型,则为将值转换为字符串类型的值。
三、继承中涉及的关键字
1、base关键字:在继承的关系中,子类如果需要调用父类中的成员可以借助base关键字来完成。base指代当前对象中父类的部分内容。
如果在同名的方法中使用base关键字调用父类中的方法,则相当于把父类中的方法内容复制到给方法中。
2、virtual关键字
virtual是虚拟的含义,在C#语言中,默认情况下类中的成员都是非虚拟的,通常将类中的成员定义成虚拟的,表示这些成员将会在继承后重写其中的内容。virtual关键字能修饰方法、属性、索引器以及事件等,用到父类的成员中。子类重写之后需要使用关键字override进行修饰说明。
重写的概念:当在子类中重新定义与父类重名且结构相同方法时,称为方法的重写。
注意:virtual关键字不能修饰使用static修饰的成员。
virtual 关键字具有传递性,子类中重写方法默认带有virtual修饰。
举例如下:
Person类中重写Object类中的虚方法ToStirng(),用来打印输出人员信息。
Student类中重写Person类中的虚方法ToString(),用来打印输出学生信息。
3、abstract关键字:代表的是抽象的,使用该关键字能修饰类和方法,修饰的方法被称为抽象方法、修饰的类被称为抽象类。
抽象类的定义格式:
访问修饰符 abstract class 类名
{
类成员
}
抽象方法的定义格式:
访问修饰符 abstract 方法返回值类型 方法名(参数列表);
4、sealed关键字:含义是密封的,使用该关键字能修饰类或者类中的方法,修饰的类被称为密封类、修饰的方法被称为密封方法。
但是密封方法必须出现在子类中,并且是子类重写的父类方法,即sealed关键字必须与override关键字一起使用。
sealed方法特点:不能被继承 不能被重写
四、多态:称为运行时多态,也就是在程序运行时自动让父类的对象调用子类中重写的方法,从而产生不同的调用效果。(重载也是多态的一种形式)
二者区别:函数重载是在编译阶段完成的多态。
类的多态是在运行时完成。
构成多态的条件:具有继承关系
子类中重写父类的虚方法
父类实例指向子类的对象。
——这是我上课学到的C#基础内容,所以我要分享给你们,希望可以帮助到你们。以上就是我的分享,新手上道,请多多指教。