《C#核心开发》教学大纲
第一单元 .NET 体系结构以及C#控制台应用程序
1.1 .NET
1.1.1 什么是.NET
.NET即DOTNET,在计算机行业DOT是Distributed Object Technology的简称,意为分布式对象技术。其中DOT与“点”的英语单词相同
1.1.2 .NET的作用使用
C#、VB、F#语言开发
程序包含:网站京东、手机点餐软件、游戏神庙逃亡、通信软件QQ、智能电饭煲
.NET平台也是免费、跨平台、开源
1.2 .NET Framework
1.2.1 什么是.NET Framework
NET Framework是为其运行的应用程序提供各种服务的托管执行环境的框架
1.2.2 .NET Framework的组成部分
FCL框架类库
CLR公共语言运行时
1.2.3 CLR的基本工作原理
是运行代码并负责提供资源管理服务的运行环境
1.2.4 FCL的组成部分和作用
是一个由类、接口和值类型组成的可访问系统功能的库;
提供对系统的访问功能
建立.NET应用程序基础
庞大的类库数量
1.3 C#语言
1.3.1 什么是C#语言
1.3.2 C#语言的历史
1.3.3 C#语言的特点
1.3.4 C#与.NET之间的关系
C#是微软发布运行于.NET Framework之上,跨平台的,面向对象的高级语言
1.4 IDE开发工具
1.4.1 Visual Studio 2017开发工具安装
1.4.2 使用Visual Studio 2017创建一个.NET Framework控制台 应用程序
1.4.3 什么是控制台应用程序
1.5 命名空间
1.5.1 什么是命名空间
命名空间使用namespace定义。
C#创建程序时,将自动创建一个命名空间。
若要在程序中使用其他命名空间的类,必须使用 using 指令来指定相应的命名空间
1.5.2 命名空间的书写规范
1.5.3 命名空间的作用
作用:是为了解决相同作用域下的命名问题,区别不同的代码
1. bin文件夹 存储编译完成的程序集
2.obj文件夹 生成一些中间文件
3.Properties 项目属性文件夹用于保存程序集的信息
4.*.csproj C#项目文件
1.6 C#语言注释
1.6.1 什么是注释
注释是写在源代码中的对代码解释和说明的,不会被编译的文本
1.6.2 单行注释的语法和使用
使用//来表示,只能用来注释一行代码
1.6.3 多行注释的语法和使用
以/*开头以*/结束,用来注释多行代码
1.6.4文档注释的语法和使用
使用///来表示,用于在生成XML帮助文档时使用,也称为XML注释。
1.7 C#语言标识符
标识符是用于给类、方法、变量、接口等命名的字符序列
1)由英文字母、数字、下划线组成,其中首字母不能是数字
2)中间不能有空格
3)C#关键字、保留字不能作为标识符
1.7.1什么是标识符
1.7.2标识符的命名规则
Pascal 帕斯卡每个单词首字母大写,类名、方法名、接口名等,Class StudentInfo
Camel 驼峰式命名法第一个单词字符小写其他单词首字母大写变量名,int oneNum
下划线命名法 int Goods_Id)
1.7.3 C#常用的保留字和关键字
1.8 第一个应用程序
1.8.1使用Console:控制台类
Console.WriteLine():是将当前行终止符写入标准输出流;//自动换行
Console.Write()是将指定字符串值写入标准输出流
1.8.2
使用Console.Read()//从标准输入流读取下一个字符,返回类型int,
Console.ReadLine() //从标准流读取下一行字符,返顺类型string,
方法从控制台接收文本内容
1.8.3使用Console.ReadKey()//是获取用户按下的下一个字符或功能键;方法实现按任意键退出功能
1.8.4控制台应用程序文本前景色
//获取或设置控制台的前景色
Console.ForegroundColor = ConsoleColor.Red;
Console.resetcolor();
//获取或设置控制台的背景色
Console.BackgroundColor = ConsoleColor.Yellow;
将控制台的前景和背景设置为默认值
Console.ResetColor();
第二单元 C#数据类型(4课时)
2.1 常量
2.1.1 什么是常量
常量是在编译时已知并在程序的生存期内其值不发生更改的变量
2.1.2 常量的定义
const double price= 108.5;
2.1.3 常量的作用
2.2 变量
2.2.1 什么是变量 变量是程序运行时在内存中存储可变数据的容器
2.2.2 变量的定义
由字母,下划线或数字组成,不能以数字开头
不能是C#中的关键字,如:int,long,float,string,Main,class等
区分大小写,如大写A与小写a是两个变量
见名知意
2.2.3 变量的作用
2.2.4 变量的作用域
2.3 数据类型
2.3.1什么是数据类型 数据类型是一个值的集合和定义在这个值集上的一组操作的总称
2.3.2数据类型的分类:值类型和引用类型
2.3.3值类型
2.3.3.1什么是值类型:值类型是其值存储在内存栈上的数据类型
2.3.3.2值类型数据存储位置:
1.存储在内存的栈上,声明时就已初始化
2.使用struct定义的结构体
2.3.3.3 内置值类型:整型、浮点型、货币型、布尔型、字符类型、 枚举 日期型int,float,decimal,bool,char,datetime enum
2.3.4引用类型
2.3.4.1什么是引用类型:引用类型是其值存储在内存堆上的数据类型
2.3.4.2引用类型数据存储位置
1.存储在内存的堆上
2.除结构和枚举以外的类型
2.3.4.3 内置引用类型: 字符串类型、可变字符串类型、 对象类型;
string,,object;,class,list,stringbulider,object,array
float浮点型是用于表示浮点数的值类型。存储小数的类型;默认值是0.0
2.4 枚举类型
2.4.1什么是枚举类型
2.4.2枚举类型的定义
2.4.3枚举类型的使用
第三单元 数据类型转换(4课时)
3.1数据类型转换
自动类型转换(隐式类型转换)
强制类型转换(显式类型转换)
3.1.1什么是强制类型转换 ;高级类型向低级类型转换
3.1.2强制类型转换的方式
3.1.2.1Convert.Toxxx()方法
int dj = Convert.ToInt32(Console.ReadLine());
double dj = Convert.ToDouble(Console.ReadLine());
3.1.2.2ToString()方法 将数值转换为其等效的字符串形式
3.1.2.3double
int.Parse()方法 将数字的字符串表示形式转换为它的等效 32 位有符号整数
3.1.3什么是自动类型转换
3.1.4自动类型转换的条件和过程
3.2 装箱以及拆箱操作
3.2.1装箱的基本概念 装箱是值int类型转换为引用string类型的机制
3.2.2装箱的过程
3.2.3拆箱的基本概念 拆箱是引用类型转换为值类型的机制
3.2.4拆箱的过程
第四单元 运算符和表达式(4课时)
4.1 表达式
4.1.1 表达式的基本概念 表达式是由一个或多个操作数以及零个或零个以上的运算符所组成的可运算的式子;
4.1.2 表达式的组成部分
4.2 运算符;运算符是C#中针对一个或多个操作数,执行特定操作的符号
4.2.1 算术运算符 用来处理四则运算的运算符; + - * / %
4.2.2关系运算符 > < == <= != >= 返回结果为bool类型
4.2.3逻辑运算符 && || !返回结果为bool类型
4.2.4字符串运算符 拼接字符串 +
4.2.5递增运算符前加:++i 先自身加1,再执行操作
后加:i++ 先执行操作,再自身加1
4.2.6递减运算符
4.2.7赋值运算符= += -= /= *= %=
4.2.8条件运算符(又称三目/三元运算符) ;逻辑表达式?表达式1:表达式2 逻辑表达式结果为true时,返回表达式1
逻辑表达式结果为false时,返回表达式2
4.2.9可空运算符;? 可空类型修饰符
()>算术运算符+->关系运算符 >= >逻辑运算符与>条件运算符bool>赋值运算符=
4.3 C#格式化输出字符串
4.3.1字符串概念
4.3.2使用Console.Write()/WriteLine()格式化输出字符串
4.3.3使用string.Format()方法格式化输出字符串
String.Format()方法
语法: string.Format("{0}.....{n}",值1,...值n)
要求:使用{}占位,占位的索引值必须从0开始
4.3.4使用C#新特性$实现字符串插值输出 语法:$"{表达式|变量名}
第五单元 流程控制一(选择/循环结构)(4课时);程序控制结构是用于控制程序执行流程的逻辑结构
5.1选择结构;选择结构是根据条件判断结果来决定程序执行流程的程序控制结构
顺序结构是在程序中按照指令的先后顺序,逐条执行的程序控制结构
5.1.1单分支条件语句 if :if选择结构是使用if判断条件是否成立,从而决定程序执行过程的选择结构;if括号中的值必须是true或者false
if ( 条件表达式 )
{
//语句体
}
5.1.2双分支条件语句 if…else
if ( 条件判断 )
{
//代码块1
}else {
//代码块2
}
5.1.3多分支条件语句 if…else if…else、switch…case
if(条件表达式1) {
代码块1;
}else if(条件表达式2) {
代码块2;
} else if(条件表达3) {
代码块3;
}
……
else {
代码块n;
}
switch选择结构是利用switch和case、break进行等值判断的多分支选择结构
表达式可以是int、short、byte、char、bool、枚举、string类型
switch (表达式){
case 常量 1:
语句;
break;
case 常量 2:
语句;
break;
…
default:
语句;
break;
}
5.2循环结构 循环结构是反复执行一系列指令直到某些特定条件满足的程序控制结构
5.2.1for循环语句; for循环是一种常用于循环次数明确操作的循环结构
- for(表达式1;表达式2;表达式3){ 循环体语句;}
2.表达式含义:
表达式1: 初始值
表达式2: 条件判断
表达式3: 更新循环变量
循环体语句:循环操作
5.2.2foreach循环语句 foreach循环是一种常用于迭代数组或者集合对象的循环结构
foreach(数据类型 变量 in 表达式 )
{
循环体语句;
}
数据类型:当前遍历的数组或集合中每一项实际存储元素类型
变量:数组或集合中每一项实际存储元素的变量名
表达式:数组或集合
5.2.3while循环语句;while循环是一种常用于循环次数不确定,先判断后执行且当循环条件满足才执行循环体的循环结构
while ( 表达式 ) ; 符合条件,循环继续执行;否则,循环退出
{
循环体
}
5.2.4do…while循环语句 do-while循环是一种先执行后判断,直到循环条件不满足退出的循环结构
do {
循环体
}
while ( 循环条件 );
do..while循环不管任何情况都至少
5.3嵌套循环 一个循环体内又包含另一个完整循环结构的循环结构。
5.3.1双重循环嵌套
5.3.2三重循环嵌套
5.3.3四重循环嵌套
5.4跳转语句 跳转语句是转移程序控制的语句
5.4.1break语句 :break语句是用于终止最近的封闭循环或它所在的 switch 语句,将控制传递给终止语句后面的跳转语句
5.4.2continue语句 是将控制传递到其中出现的封闭循环语句下一次迭代的跳转语句
5.4.3return语句 return语句是终止所在方法的执行,并将控制权及可选值返回给调用方法的跳转语句
第六单元 数组以及Array应用(4课时)
6.1什么是数组 数组是长度固定的、存储元素类型相同的容器
按维数分(一维数组、多维数组、交错数组)
按元素类型分(值类型数组、引用类型数组)
6.1.1 什么是一维数组 一维数组是用一个下标访问数组元素的数组
6.1.2一维数组的声明和初始化方法
数据类型 [ ] 数组名 = new 数据类型 [大小] ;
一int[ ] arr = new int[5]; // 创建长度为5的整型数组
二// 创建的同时初始化
int[ ] arr = new int[5]{0,1,2,3,4};
int[ ] arr = new int[ ]{0,1,2,3,4}; // 省略长度
int[ ] arr = {0,1,2,3,4}; // 省略new
三
四int[] marks = new int[] { 99, 98, 92, 97, 95 };
int[] score = marks;
6.1.3一维的访问和遍历的方法
6.1.4一维数组中的常用属性及方法
Length: 获得数组的长度(元素的个数)Rank: 获得数组的维数
Sum(): 获得数组元素和 Average(): 获得数组元素平均值
Max()/Min(): 获得数组元素最大值/最小值 数组名.Max() /数组名.Min( )
Reverse(): 反转数组元素 Array.Reverse(数组名)
First(): 返回序列中满足条件的第一个元素
Last(): 返回序列中满足条件的最后一个元素
Array.Sort(): 对整个一维 Array 中的元素进行排序
// 对数组中的全部元素进行有序排列
int[ ] array = new int[5] { 10, 1 ,12, -3, 41}; // 声明并初始化一维数组
Array.Sort(array);
// 输出数组中的所有元素
for (int i = 0; i < array.Length;i++ )
{
Console.WriteLine(array[i+1]);
}
array[i]=console.readline();
6.1.5二维数组的概念 是由二维及以上的数组逐层嵌套形成的数组
6.1.6二维数组的声明、初始化及访问方法 数据类型 [,] 数组名称;
数组类型[,] 数组名=new数组类型[行数,列数]
6.2Array类中常用属性及方法
第八单元 封装(字段/属性)(4课时)
8.1什么是编程
8.1.1面向过程编程
8.1.2面向对象编程 面向对象开发方法是以对象为导向来开发应用程序的软件开发方法;具有封装、继承、多态特征
8.2什么是类
8.2.1类的基本概念: 类是具有相同属性和方法的一组对象的集合
按是否实例化(普通类、 抽象类)
按Static修饰与否(静态类、非静态类)
按有无类名分(匿名类、非匿名类)
按定义位置分(嵌套类、非嵌套类)
8.2.2类的定义语法:
8.2.3类实例化为对象操作:
8.2.4new关键字的使用:
// //类名 具体的对象名称=new类名();
Students stu = new Students();
8.2.5类实例化后变成对象的过程
8.2.6什么是对象;对象是人们在行动或思考时作为目标的事物;计算机中的对象是客观世界中的对象在计算机中的映射
8.2.7类和对象之间的关系;
1.类是对象的抽象
2.对象是类的实例
8.3类成员:
基本格式:
访问修饰符 class 类名
1.访问修饰符:类的默认访问修饰符是 internal
2.定义类的关键字是class
访问修饰符是用于限定类型及类型成员可见性等级的修饰符:
Public:公开的
Private:私有的
Protected:受保护的
Internal:内部的
8.3.1类的成员都有哪些:方法/属性/字段/构造函数/事件/索引器/子类等
数据成员:字段,常量,事件
方法成员:方法构造函数,索引器,析构函数,属性
8.3.2什么是字段 :
字段是在类或结构中直接声明的任意类型的变量
语法:访问修饰符 数据类型字段名称=值;
字段(默认访问修饰符为私有的private)
8.3.3字段的定义
8.3.4字段的作用:可以用于保存信息
/将字段封装为属性,属性具备两个访问器 get:读访问器 set:写访问器
8.3.5什么是属性:
属性是客观世界对象的特征在计算机中的映射;
封装是隐藏实现细节并对外提供访问的机制。
(1)字段封装后可以变成属性 (2)单独属性也可以用于保存数据(不包括字段封装)
8.3.6属性的作用:属性一般是向外提供数据,主要用来描述对象的静态特征,属性一般是public
语法: 访问修饰符 数据类型 属性名称{get;set;}
8.3.7属性和字段之间的联系:
//字段
String name
//完成name字段的封装
public string Name { get { return name;}set {name = value;}}
8.3.8只读或只写属性的使用方法
public string Name { get; set; }
8.4数组存储对象
知识目标:
理解类和对象的基本概念
掌握类的成员
掌握什么场景下使用字段和属性
掌握使用数组来存储数据信息
第九单元 封装(方法)
9.1什么是方法 属性及方法是描述对象的特征与行为,二者相辅相承,不能分割
9.1.1方法的概念:方法是客观世界对象的行为在计算机中的映射;实例方法,成员方法,构造方法
9.1.2定义方法的语法格式:访问修饰符,返回值,类型方法名,参数列表
按返回值划分:有返回值方法,无返回值方法
按参数划分:有参方法,无参方法
按调用对象划分:静态方法,实例方法
9.1.3定义有参方法的语法格式:
访问修饰符 返回值类型 方法名(类型1 参数名称1,类型2 参数名称2)
{
//方法体:用于编写执行代码
}
9.1.3.1什么是形参:
形式参数(形参),具有类型和名称
9.1.3.2什么是实参:
实际参数(实参)必须与形参的类型匹配
9.1.3.3使用枚举类型作为方法参数:
public enum Worker {Teacher, Doctor}
9.1.4定义无参方法的语法格式:
1,无参无返回值;括号内没有参数
Public void show()
{
Console.write(“ ”);
}
2.无参有返回值:return返回值;
Public int Show()
{
Retuern 23;
}
9.1.5定义有返回值方法的语法格式:
访问修饰符 返回值类型 方法名( 参数名称1,类型2 参数名称2)
{
//方法体:用于编写执行代码
return value;
}
3.有参无返回值:
Public int Show( string name,int age)
{
Console.writeline(“ 值 ”);
}
4.有参有返回:
Public int sum(int num,decimal prince)
{
Retuern num*prince;
}
9.2什么是静态方法:静态方法是由static 修饰的,生命周期和类相同的成员方法
//1.静态类中不能包含实例方法;
//2.静态类不支持实例化;
//3.实例类中可以包含静态成员;反复使用;
9.2.1静态方法的语法格式:
public class 类名
{
访问修饰符 static 返回类型 方法名称([参数列表])
{
//方法体
}
}
9.2.2静态方法的作用:
用static修饰,类加载时,类名.方法(),只能访问静态成员,可以反复使用
9.2.3静态方法的调用
第十单元 继承
10.1什么是继承
10.1.1继承的概念:继承是子类复用父类成员的机制(多个类中的公共方法或属性会单独放在一个类中,)
10.1.2继承的基本语法:
class 子类: 父类
{
}
10.1.3什么是基(父)类:父类/基类是被其它类继承的类
Object是C#中所有类的父类
10.1.4什么是派生(子)类:子类/派生类是继承了其它类的类
10.2类之间的继承
10.2.1子类继承父类的方法
10.2.2子类使用父类中的成员
10.2.3Main()中调用子类成员
10.3ref:定义:ref是通过引用来传递参数;
内部对外部值进行改变
使用时必须为变量赋值
调用方法时,必须使用ref关键字
10.3.1ref的概念
10.3.2ref的具体用法
10.3.3ref的使用场景
10.4out:out就是输出参数
10.4.1out的概念: 内部方法对外部值进行赋值
10.4.2out的具体用法:在方法内部必须要有给参数赋值的语句
10.4.3out的使用场景
10.5ref与out的区别
第十一单元 多态(重载&&重写)
10.1什么是多态:
多态是同一个操作因作用对象(或参数)不同而表现出不同实现方式的机制
10.1.1多态的概念
10.1.2多态的表现形式(重写/重载);编译时多态重载;运行时多态:重写
10.2重载
10.2.1重载的概念:(两相同一不同)
重载是一个类中定义的多个方法名相同,但参数列表不同方法的机制
//1.多个方法放在一个类中
//2.方法名称相同
//3参数列表不同(参数个数、参数类型不同)
10.2.2重载的语法格式
10.3重写
10.3.1重写的概念:
重写是子类重新编写父类方法以提升代码扩展性的机制
10.3.2重写关键字的使用方法:
virtual :虚方法,作用于父类,继承此类的子类可以重写此方法
override :重写父类虚方法关键字,作用于子类子类可以重写父类的同名虚方法
第十二单元 构造方法
10.1什么是构造方法:定义:
构造方法是名称和类名相同、
自动调用完成对象初始化的特殊方法
10.1.1构造函数的基本语法:
10.1.2构造函数的作用:
1、名称与类名相同
2、无返回值类型修饰
3、若无自定义构造方法,系统会自动添加无参构造
4、系统在创建对象时自动调用
5、主要完成对象的初始化工作
10.1.3默认构造方法的基本语法和作用:
1.无参构造方法:
public 构造方法名()
{
方法体(直接赋值)
}
2.有参构造方法:
public 构造方法名(参数类型1 参数名1,…..参数类型n 参数名n)
{
方法体()
}
10.1.4自定义构造方法的基本语法和作用
10.2构造函数继承
10.2.1this关键字使用方式:
1.this关键字代表当前对象
2.this关键字后面跟:可以调用其他的构造函数
10.2.2base关键字使用方式:
1.base 关键字用于从派生类中访问基类的成员:
2.调用基类上已被其他方法重写的方法。
3.base关键字代表父类,不能使用在静态类中
public Son(string name, int age) :base("张",47)
10.3构造函数重载:重载构造函数的主要目的是为了给创建对象提供更大的灵活性,以满足创建对象时的不同需求
10.3.1重载的概念
第十三单元 接口&&抽象类
13.1接口
13.1.1什么是接口:接口是一种规范和约定
定义:接口是用interface表示、不能直接实例化的引用数据类型
13.1.2定义接口的语法格式:
访问修饰符 interface 接口名
{
接口成员
}
13.1.3接口的作用与使用场景
13.2接口继承:public interface 接口名 :接口A,接口B
13.2.1类继承接口
13.2.2接口继承接口
13.3抽象类
13.3.1什么是抽象类:
使用Abstract关键字修饰的类叫做抽象类
13.3.2抽象类关键字的使用方式:
访问修饰符 abstract 类名{
}
13.3.3抽象类的作用
13.3.4抽象类的特点
13.4抽象方法:
使用Abstract关键字修饰的方法叫做抽象方法
13.4.1抽象方法的语法格式:
访问修饰符 abstract 父类{
访问修饰符 abstract 返回值类型 方法名 {
};
}
13.4.2override重写方法:子类必须override抽象类中的所有抽象属性和抽象方法
第十五单元 List集合应用
15.1泛型:
是通过参数化类型来实现在同一份代码上操作多种数据类型的机制
15.1.1什么是泛型:
泛型类是把类型作为参数传递的类
15.1.2泛型类/方法的语法格式
15.1.3泛型类/方法的作用
15.2泛型集合 定义:
泛型集合是适用不同数据类型,存储元素类型相同的集合
15.2.1什么是List<T>:
List<T>是长度以2倍速度扩容的、存储元素类型相同的泛型集合
15.2.2List<T>的概念:
15.2.3List<T>的语法格式:
List<T> 集合名=new List<T>()
List<数据类型>集合名称=new List<>
15.2.4List<T>的实例化和类型化参数
15.2.5List<T>的常用方法
15.2.5.1添加方法(Add():
添加到List集合尾部 Add(元素) 如:strlist.Add(“me”)
Insert()):添加到List集合指定位置Insert(下标,元素) 如:strlist.Insert(2,”Hi”)
15.2.5.2删除方法 (Remove():
删除List集合中的元素Remove(元素) 如:strlist.Remove(“c”))
RemoveAt()删除List集合中指定下标的元素 RemoveAt(下标)如:strlist.RemoveAt(3)
RemoveRange()删除List集合中指定范围的元素 RemoveRange(下标,个数)
15.2.5.3移除方法(Clear()):
清空List集合中所有元素Clear()
15.2.5.4数学方法(Max()/Min()/Sum()/ Average())
#region 集合中数学的方法
//Console.WriteLine($"集合数据总和为:{nlist .Sum()}");
//Console.WriteLine($"集合数据最大为:{nlist.Max()}");
//Console.WriteLine($"集合数据最小为:{nlist.Min()}");
//Console.WriteLine($"集合数据平均值为:{nlist.Average()}");
#endregion
15.2.5.5取值方法 First()/Last()/FirstOrDefault()/LastOrDefault()
First() :返回List集合中第一个元素
FirstOrDefault ():返回List集合中第一个元素为空是返回默认值
Last():返回List集合中最后一个元素
LastOrDefault ():返回List集合最后一个元素为空是返回默认值
// foreach语法:(数据类型 变量名称 in 集合名称)
foreach (int item in nlist)
{
Console.WriteLine(item);
}
15.2.6泛型字典Dictionary<TKey,TValue>
Dictionary<TKey,TValue> 字典名=new Dictionary<TKey,TValue>()
15.2.7泛型字典的基本概念和作用
15.2.8泛型字典中添加数据信息
15.2.9泛型字典中移除数据信息
第十六单元 字符串/日期/数学函数/随机数
16.1字符串定义:字符串是一串由数字、字符、符号等组成的字符序列
16.1.1字符串的概念和作用
16.1.2字符串的关键字和常用方法
IndexOf (“要查找的字符/字符串”)作用: 返回字符/字符串在字符串中第一次出现的位置 LastIndexOf(“要查找的字符/字符串”) 作用:返回字符/字符串在字符串中最后一次出现的位置.
isNullOrEmpty()判断字符串是否为null或空字符串;
作用:返回类型是bool,如果字符串是null或空字符串则返会true,否则返回false。
Trim()
作用: 去除字符串左右空格
TrimStart()
作用: 去除字符串左边的空格
TrimEnd()
作用: 去除字符串右边的空格
Equals()
作用: 是用于字符串之间的相等比较。
返回类型:bool,只有当值完全相等时,返回值才是true;否则返回false
Contains()
作用: 是用于字符串之间的模糊查询
返回类型:bool ,只要包含条件时,返回值就是true;否则返回false
substring,截取方式:
Console.WriteLine(phone.Substring(0,3));
ToLower()
作用: 把字符串中所有的大写字母转换为小写字母
ToUpper()
作用: 把字符串中所有的小写字母转换为大写字母
string[] 数组名= 变量名.Split(‘分割字符’ );
使用说明: Split()默认分割成数组后,不去除空项
string.Join(分隔符,数组名)
作用: 使用指定的分隔符把数组连接成字符串
PadLeft(补齐后字符串总长度,’补齐字符’)
PadRight(补齐后字符串总长度,’补齐字符’)
Console.WriteLine(a.ToString().PadLeft(3,'0'));
Console.WriteLine(a.ToString().PadRight(3, '0'));
string.Replace(“旧字符/字符串”,“新字符/字符串")
作用: 使用指定的字符(串)替换原来的字符(串),并返回替换后的结果
16.2日期类
16.2.1什么是日期类
16.2.2日期类的常用方法和属性
Now :获取计算机本地时间 如:DateTime.Now
Year: 获取日期年份 如:日期变量.Year
Moneh:获取日期月份 如:日期变量.Month)
Day:获取日期是本月的第几天 如:日期变量.Day
DayOfWeek:获取日期是本周的第几天 如:日期变量.DayOfWeek
DayOfYear:获取日期是本年的第几天 如:日期变量.DayOfYear
Hour:获取日期当前的小时 如:日期变量.Hour
Second:获取日期的秒数 如:日期变量.Second
AddYears():将指定年份进行累加 如:日期变量.AddYears(数字)
AddMonths(): 将指定月数进行累加 如:日期变量.AddMonths(数字)
AddDays(): 将指定天数进行累加 如:日期变量.AddDays(数字)
AddHours():将指定小时数进行累加 如:日期变量.AddHours(数字))
AddMinutes:将指定分钟数进行累加 如:日期变量.AddMinutes(数字)
AddSeconds:将指定秒数进行累加 如:日期变量.AddSeconds(数字)
16.3数学函数类
16.3.1数学函数类的常用方法
Abs() :获取当前参数绝对值 如:Math.Abs(-3)
Pow() : 获取当前参数指定次幂 如:日期变量.Math.Pow(参数,指定次幂)
Sqrt() :获取当前参数平方根 如:日期变量.Sqrt(参数))
Round() :将浮点数按指定小数位数四舍五入 如:Math.Round(浮点数,保留的小数位数)
Floor() :无条件舍去所有小数 如:Math.Floor(浮点数)
Truncate:计算浮点数的整数部分 如:Math.Truncate(浮点数)
16.4随机数
16.4.1随机数类的常用方法
Random:是一个产生伪随机数的类
第十七单元 结构化异常处理
17.1调试:调试程序是在被编译了的程序中通过中断模式,获取当前值信息,判定程序执行错误的机制
快捷键调试(F9、F5、F10、F11)
窗口调试(即时窗口、监视窗口、局部变量窗口)
17.1.1什么是调试
17.1.2调试的作用
17.1.3代码运行出错的两种情况
17.2异常处理:定义:异常是程序运行时发生的不正常事件
17.2.1什么是异常处理
17.2.2异常处理的作用
17.2.3异常处理的核心关键字:
try表示可能会发生异常代码块的关键字
catch表示try代码块出现异常时,根据异常类型来捕获并处理异常的代码块的关键字
finally是在try或catch代码块之后,标示无论有无异常都将执行的代码块的关键字
用于资源的释放和回收
、throw
17.3Visual Studio开发工具的调试
17.3.1如何打断点
17.3.2F5/F10/F11快捷键的使用
F5启动调试,(F10逐过程调试)F11逐语句调试
17.3.3局部变量窗口的使用
17.3.4监视窗口的使用
17.3.5快速监视的使用