ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#基础笔记

2022-05-14 12:35:30  阅读:100  来源: 互联网

标签:语句 字符 匹配 C# 基础 接口 运算符 笔记 方法


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语句

标签:语句,字符,匹配,C#,基础,接口,运算符,笔记,方法
来源: https://www.cnblogs.com/dengzhh/p/16269615.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有