C#基础笔记

互联网 2022/5/14 14:21:16

VS快捷键 Ctrl+K,C 注释代码 Ctrl+K,U 反注释 Ctrl+E,D 格式化代码(vs2012版) Ctrl+k,F格式化代码(vs2019版) 全选:Ctrl+a 返回上一步操作:Ctrl+z 调试:F5 直接运行(不调试):Ctrl+F5 标识符命名规范 第二章 变量、数据类型和运算符 2.1 变量 2.1.1 变量的命…

VS快捷键

Ctrl+K,C 注释代码

Ctrl+K,U 反注释

Ctrl+E,D 格式化代码(vs2012版)

Ctrl+k,F格式化代码(vs2019版)

全选:Ctrl+a

返回上一步操作:Ctrl+z

调试:F5
直接运行(不调试):Ctrl+F5

标识符命名规范

第二章 变量、数据类型和运算符

2.1 变量

2.1.1 变量的命名

命名:遵循骆驼命名法。
组成:以字母、下划线、“@”开头,后面可以接任意多个数字、字母、下划线。
若与C#中的关键字相同,则需在前面加“@”。
C#中区分大小写。
见名知意。

骆驼命名法(驼峰命名法):首单词首字母小写,其余单词首字母大写。

帕斯卡命名法:每个单词首字母都大写。

方法名、类名遵循帕斯卡命名法。

2.2 数据类型

2.2.1 数据类型的分类

C#中的数据类型分为值类型和引用类型。

(1)值类型
数值型:整型(8种)、浮点型(2种)、decimal
字符型:char
布尔类型:bool

(2)引用类型:string

sbyte:存储8位有符号整数,取值范围是:-2的7次方至2的7次方-1。
byte:存储8位无符号整数,取值范围是:0至2的8次方-1。

float、double、decimal三种类型表示的都是有符号数。

float:单精度浮点型,7位有效数字,小数点后最多能保留7位小数,值后面需要加F/f。(当整数部分为0时,小数部分最多只能保留7位;当整数部分有1位大于0的数时,小数部分最多只能保留6位;当整数部分有2位数时,小数部分最多只能保留5位。)

double:双精度浮点型,15位有效数字,小数点后最多能保留15位小数,值后面可以加上D/d,也可以不加。。(当整数部分为0时,小数部分最多只能保留15位;当整数部分有1位大于0的数时,小数部分最多只能保留14位。)

decimal:十进制类型,28位有效数字,用于金融和货币方面的计算,值后面需要加M/m。(小数点后最多能保留28位小数)

char:字符型,16位的Unicode字符,使用单引号引起来的单个字符。

bool:布尔型,1位,只有2个值,即true和false。

string:字符串,引用类型,使用双引号引起来的多个字符的集合。

2.3 转义字符

常用的转移字符如下:

\n:换行;
\t:水平制表符;
\':单引号;
\":双引号;
\\:\

示例:

使用换行符输出信息。

 string brand="爱国者F928";
 double weight=12.4;
 string type="内置锂电池";
 int price=499;
 Console.WriteLine("品牌(brand):{0}\n重量(weight):{1}\n电池类型(type):{2}\n价格(price):{3}", brand,weight,type,price);

2.4 隐式声明变量

C#3.0或以上的版本支持;
在C#3.0中声明一个变量时,可以不明确指定它的数据类型,而使用关键字"var"来指定变量的类型。该变量实际的数据类型将在其初始化的表达式中推断出来。

2.5 常量

常量,其值在使用过程中固定不变的量。在数据类型前加const关键字即可,语法如下:
const 数据类型 常量名称 =常量值;
注意:
(1)常量必须在声明时初始化,并且指定了值后,就不能再修改了。
(2)常量的值不能用一个变量来初始化(赋值)。

2.6 不同数据类型之间的类型转换

1.字符串和数值型之间的转换
(1)字符串型转成数字型:
方式一:xx.Parse(string_value) 将字符串转换为数字型,xx可以为int、float、double。
方式二:Convert.ToXX(value)

(2)将数字型转换为字符串型:
xx.ToString()
Convert.ToString(xx)

2.7 运算符

2.7.1 算术运算符

+、-、*、/、%、++、--

++和--:

若其在操作数之前:先执行自加1/自减1,然后再做其他操作。

若其在操作数之后:先做其他操作,再执行自加1/自减1。

2.7.2 赋值运算符

(1)基本赋值运算符

=

(2)复合赋值运算符

+=、-=、*=、/=、%= 

2.7.3 关系运算符

>、<、==、>=、<=、!=

2.7.4 逻辑运算符

&&   与

||   或

!    非

2.7.5 三元运算符(条件运算符)

条件表达式 ? 表达式1 : 表达式2  //条件表达式为true时取值表达式1,否则取值表达式2。
            Console.WriteLine("请输入你的年龄:");
            //获取用户输入的信息
            string str=Console.ReadLine();
            //int age = int.Parse(str);
            int age = Convert.ToInt32(str);
           
            //string result= age >= 18 ? "可以适量饮酒" : "禁止饮酒";
            //int result=age >= 18 ? 1 : 0;
            char result=age >= 18 ? '是' : '否';
            Console.WriteLine(result);

第三章 选择结构

3.1 程序结构

顺序结构

选择结构

循环结构

3.2 选择结构

3.2.1 if语句

基本if语句

多重if语句

嵌套if语句

3.2.2 switch语句

在C# 6及更早版本中,使用switch语句时,有以下限制:

(1)匹配表达式必须是以下任一种类型:

字符型、字符串型、布尔型、整数类型、枚举类型;

(2)case标签中只允许使用常数表达式。

从C# 7.0开始,switch语句支持模式匹配。

具体可以参考:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/statements/selection-statements

if语句和switch语句的异同:

if语句既可以用于对某个具体值的判断,还可以用于对某个范围的判断。

switch语句只能用于等值判断。

while和do..while循环:

第四章 循环一

第五章 循环二

for循环:

for循环语法

​ for(初始化表达式;条件表达式;操作表达式)
​ {
​ 循环体
​ }

for(初始化语句;条件判断语句;循环控制语句)

{

循环体

}

for后面的小括号里面的三个表达式,可以省略不写,而写到其他地方,但两个分号必须保留。

continue

终止当次循环,进入下一次循环。

break:

跳转语句,用于跳出循环。

数组:

数组属于引用类型,用于存储相同类型的多个数据 。

冒泡排序:

方法:一个方法是把一个相关的语句组织在一起,用来执行一个任务的语句块。

public static 返回值类型 方法名([参数列表]){

//这里编写方法的主体

【return】

}

方法重载:

在同一个类中,出现多个方法,其方法名相同,但参数列表不同的现象称为方法重载。

注意:

参数列表不同又分为两种情况:

(1)参数的个数不同;

(2)参数的类型不同;

类的对象:

构造方法:

无参构造方法:c#系统默认提供,但当写了其他的构造方法后,系统就不在提供构造方法。

第八章类和对象

8.1 属性

属性分为三类:

读写属性:有get访问器和set访问器。

只读属性:只有get访问器,只能获取属性的值,不能对属性赋值。

只写属性:只有set访问器,只能对属性赋值,不能获取属性的值。

8.2 枚举

枚举的关键字是enum;

每一个枚举值对应有一个常数值,常数值的类型为int型,且默认从0开始;

枚举值不能相同,但不同的枚举值可以有相同的常数值。

第九章 C#面向对象深入

9.1 结构体

结构体与类的异同

不同点:
类:
(1)属于引用类型,存储在堆中;
(2)可以被继承;
(3)可以添加默认的无参构造函数;
(4)创建对象必须使用new;
(5)类中可以给字段赋值。

结构体:
(1)属于值类型,存储在栈中;
(2)不能被继承;
(3)有默认的无参构造方法,但不能显式的在结构体中写出来;
(4)结构中只有字段没有属性时,可以不使用new来创建对象;
(5)结构中不能给字段赋值。

相同点:
(1)都可以包含字段、属性和方法;
(2)都可以实现接口。

抽象方法

///


/// 动物类(定义成抽象方法)
/// 抽象方法所在的类一定是抽象类,但抽象类里面不一定有抽象方法。
///

接口

接口的关键字是interface

接口中的方法默认使用“public” 修饰,定义的变量默认是用“punlic static final”来修饰.

由于接口中的方法都是抽象方法,因此结构不能被实例化,也就不能通过实例化对象的方式来调用接口中的方法.,此时需要定义一个类来实现接口中的方法.

一个类可以实现多个接口,被实现的接口间要用逗号隔开

一个接口还可以去继承另一个接口.

抽象类和接口的对比

					抽象类															接口

不同点:1.用abstract定义 用interface定义

​ 2.只能继承一个类 可以实现多个接口

​ 3.非抽象派生类必须实现抽象方法 实现接口的类必须实现接口的所有成员

​ 4.抽象类中的子类需要使用override 直接实现

​ 实现抽象类抽象方法

​ 5.抽象类中不一定包含未实现的方法

接口中的方法一定包含未实现的

相同点:1.不能实现实例化

​ 2.派生类必须实现未实现的方法

第十二章 常用类

12.6 正则表达式

正则表达式:用于字符匹配,验证数据的合法性,需要引入命名空间:using

System.Text.RegularExpressions;

如果要把一个正则表达式重复用于不同的字符串来进行匹配,就需要创建一个Regex类的对象;

如果正则表达式只使用一次,就使用Regex类的静态方法。

Regex.Split(string input,string pattern);//拆分字符串方法返回的是一个字符串数组

Match类和MatchCollection类:能让我们知道匹配的细节。

正则表达式的字符:

^ :匹配以什么开头(^不在[]里面的用法)

$ :匹配以什么结尾

\d:匹配一个十进制数字字符,等价于[0-9] (\D匹配一个非数字字符,等价于[^0-9])

\w:匹配含下划线在内的任何一个单词字符,等价于[a-zA-Z0-9_]

​ 字母,汉字,数字,字符

\W:匹配任何非单词字符。等价于‘[^A-Za-z0-9_]’

\b:匹配一个单词边界,也就是指单词和空格间的位置。

\B:匹配非单词边界。

{n}:匹配前一个元素n次。

{n,m}:匹配前一个元素至少n次,但不多于m次。

. :通配符,匹配除换行符\n外的任意字符

| :匹配以|分隔的任何一个元素,即或者的关系,比如x|y 匹配x或y

当i=5时会引发异常,catch块中有return语句时对应的顺序:try块引发异常-->执行catch块中的代码,至return语句的前一行-->执行finally块中的代码-->在执行catch块中的return语句

随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[C#基础笔记]http://www.zyiz.net/tech/detail-320938.html

赞(0)
关注微信小程序
程序员编程王-随时随地学编程

扫描二维码或查找【程序员编程王】

可以随时随地学编程啦!

技术文章导航 更多>