C# xmind总结

C#

第1章 输入输出与数据类型

基本骨架

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace day_01
{
    class Program
    {
        static void Main(string[] args) 
        {
	Console.WriteLine("Hello World!!!");
	Console.ReadLine();
        }
    }
}

### C#简介

- 基本名词

	-     - .NET framework:舞台
    - c#:舞台上的演员
    - visual studio:开发工具

- 工具类:Console类

	-     - 不换行输出:Write
    - 换行输出:WriteLine
    - 槽占位输出:WriteLine("{0}{1}",one,two)
	-     - 输入字符串:ReadLine
    - 输入单个字符:Read、返回整数,整数对应字符编号
    - 热键输入:ReadKey

- 转义字符

	-     - 单引号:\'
    - 双引号:\"
    - 反斜杠:\\
    - 空:\0
    - 警告(产生峰鸣):\a
    - 退格:\b:backspace
    - 换页:\f
    - 换行:\n
    - 回车:\r
    - 水平制表符:\t:tab
    - 垂直制表符:\v

- 注释:Ctrl+/

	- //单行注释
/* 多行注释 */
/// 文档注释

### 变量的声明与赋值

- 变量

	- 可以变化的量就是变量 说明我的变量的值不固定 是随时可以进行变化操作

- 取名

	- 一定要是合法的变量名
    - 必须以 "字母" 或@开头
    - 后面可以跟 "字母" , 数字 , 下划线
    - 不能与 关键词 重名
	- @有2种意义:
)字符串中如果有\,则不理解为转义符
)使字符串可以换行

- 声明并赋值

	- 数据类型 变量名 = 值; 
    - 例如:int money = 100;

### 数据类型

- 字符型char: 用于存储单个字符

	- char 2字节 取值范围:0 ~ 65535

- 字符串型string: 用于存储一串字符

	- string 取值范围:任何""之间的字面值

- 小数型float - double:用于存储小数

	- float 4字节 取值范围:10^-38 ~ 10^38
double 8字节 取值范围:10^-308 ~ 10^308
	- 当你不声明的时候,默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f

- 整数型byte - short - int - long:用于存储整数

	- sbyte 1字节 取值范围:-128 ~ 127
byte 2字节 取值范围:0 ~ 255
short 2字节 取值范围:-32768 ~ 32767
ushort 2字节 取值范围:0 ~ 65535
int 4字节 取值范围:-2147483648 ~ 2147483647
uint 4字节 取值范围:0 ~ 4294967295
long 8字节 取值范围:-2的63次方 ~ 2的63次方-1
ulong 8字节 取值范围:0 ~ 2的64次方-1

- 布尔型boolean:只有两个值 一个true正确 / false错误

	- booleam 1字节 取值范围:true / false

### 字段

- 作用

	- 表示存储位置,用来保存类的各种数据信息

- 静态:static
- 实例:默认不加字段
- 常量:const

	- 无法进行修改的变量

- 只读:readonly

### 类型转换

- 自动类型转换:两种类型相互兼容 目标类型大于源类型
- 强制类型转换:两种类型相互兼容 目标类型小于源类型
- 规则

	- 整数长度足够,数据完整。
	- 整数长度不够,数据截断。
	- 小数强转整数,数据截断。
	- 字符整数互转,数据完整。

- 类型转换方法

	-     - 字符串 转其他类型:类型.Parse(字符串)
    - 字符串 转其他类型:Convert.Toint32(需要转换的内容)
    - 任意类型转 字符串:Convert.Tostring(需要转换的内容)
    - 任意类型转 字符串:需要转换的内容.Tostring
    - 数组类型转换:Array.ConvertAll<需转换类型, 转换后类型>(数组名, s => 转换后类型.Parse(s))

### 运算符和操作符

- 算术运算符

	- +(加)  - (减)  *(乘)  /(除)  %(模)  ++(递增+1)  --(递减-1)

- 比较运算符

	- >  <  >=  <=  ==(等于)  !=(不等于)

- 逻辑运算符

	- &&(与)  ||(或)  !(非)

- 赋值运算符

	- 右边进行运算 再将运算的结果赋值给左边

- 操作符

	- =  +=  -=  *=  /=  %=
	- ? :  布尔表达式

		- ? 结果1 : 结果2

			- (真)获得结果1 (假)获得结果2

- 进行算数运算时

	-     - 两个操作数有一个为double,计算结果提升为double。
    - 如果操作数中没有double,有一个为float,计算结果提升为float。
    - 如果操作数中没有float,有一 个为long,计算结果提升为long。
    - 如果操作数中没有long,有一个为int,计算结果提升为int。
    - 如果操作数中没有int,均为short或byte,计算结果仍旧提升为int。
    - 任何类型与String相加(+)时,实为拼接,其结果自动提升为String。

## 第2章 类与对象;修饰符

### 类的定义与对象的实例化

- 类的定义

	- 文件名就是类名,文件名是其它的文件

- 给类中添加属性

	-     - 私有属性:String color;
	-     - 公有属性:public String color;

- 对象的实例化

	- 类名 变量名 = new 类名();

- 获取对象的属性值并修改

	- 对象.属性名=值

### 定义方法并使用

- 定义方法格式

	- 访问修饰符 返回值类型 方法名( 形参的类型 形参名称 ){方法执行内容}

- 返回值类型

	-     - 默认:void
    - 基本类型:如int
    - 数组:数组名[]
    - 字符串:String
    - 自定义的类:类名

- 调用方法

	- 对象调方法:对象.方法名( );
方法调方法:方法名( );

- 调用带有返回值的方法

	- 用一个和返回值相同类型的变量 接收这个返回值
	- 返回值类型 变量名 = 对象.方法名( );

- 调用带有参数的方法

	- 对象.方法名( 实参1,实参n );

### 对象数组

- 与普通数组的区别

	-     - 对象数组可以存自定义对象
    - 普通数组存基本数据类型

- 对象数组的定义

	- 类名[] 变量名 = new 类名[长度];

- 对象数组中的方法调用

	- 遍历调用每一个数组成员的方法

### 修饰符

- 属性修饰符

	- Serializable:按值将对象封送到远程服务器。在按值封送对象时,就会创建一个该对象的副本,并将其序列化传送到服务器。
	-  任何对该对象的方法调用都是在服务器上进行的。
    - STAThread:单线程套间、是一种线程模型
    - MTAThread:多线程套间、是一种线程模型

- 访问修饰符

	-     - 公有访问:public、不受任何限制
    - 保护访问:protected、实例不能访问
    - 私有访问:private、子类,实例都不能访问
    - 内部访问:internal、只限本项目内访问,其他不能访问
    - 内部保护访问:protected internal 内部保护访问,只限于本项目或是子类访问,其他不能访问

- 类修饰符

	-     - public:不受限制
    - internal:只限本项目内访问
    - Partial:部分类,可以将一个类分成几部分写在不同文件中,最终编译时将合并成一个文件,
    - 且各个部分不能分散在不同程序集中。常见场景在Winform定义窗体或者控件时,自动生成的前端单元和逻辑单元。
    - Abstract:修饰类,表示不能够创建该类的实例。修饰方法,表示该方法需要由子类来实现,
    - 如果子类没有实现该方法那么子类同样是抽象类;且含有抽象方法的类一定是抽象类。
    -Sealed:修饰类,表示该类不能够被继承。修饰方法,表示该方法不能被覆写。
    -Static:修饰类,表示不能够实例化该类的对象,也不能含有对象成员;
    修饰类成员时,该成员为类成员,只能通过【类.成员名】的方式访问。

- 成员修饰符

	-     - 公共修饰符:public
    - 私有修饰符:private
    - 保护修饰符:protected
    - 内部修饰符:internal
    - Virtual:修饰方法成员,表示虚方法。父类可以含有该类的实现,子类可以覆写该函数。
    - Override:表示该方法为覆写了父类的方法。
    - Readonly:修饰字段,表示该字段为只读字段。
    - Const:修饰字段,表示该字段为只读字段。并且在编译时必须能够明确知道该字段的值,
    - 其值是硬编码到程序中去的,修改了该类型成员后需要重新编译才能使修改生效。
    - Readonly不能修饰局部变量,const可以。
    - abstract用来修饰抽象类,表示该类只能作为父类被用于继承,而不能进行对象实例化。
    - 抽象类可以包含抽象的成员,但这并非必须。abstract不能和new同时用。
    - sealed用来修饰类为密封类,阻止该类被继承。
    - 同时对一个类作abstract和sealed的修饰是没有意义的,也是被禁止的。
	- 注意:当一个类或方法没有被任何修饰符修饰时,默认为internal。

### 访问器

- 作用

	- 在私有字段使用时,给读写权限

- 用法:封装字段

	- public 类型 属性名{ get{} set{} }

- get访问器

	-     - 取值时,会触发的代码、负责读权限
    - 用法:get { return 私有字段; }

- set访问器

	-     - 赋值时,会触发的代码、负责写权限
    - 赋值:value
    - 用法:set { 私有字段 = value; }

### 关键词

- 对象本身:this
- 引用传递

	- ref

		- 给方法传递值类型的参数,直接操作同一个变量,必须设置其初始值,侧重于修改

	- out

		- 和ref相似,且可以不设置初始值,但是在方法中必须初始化,侧重于输出

### 预处理器:#region、可折叠代码块

- 用法

	- #region 折叠后的说明文字
	折叠的代码
#endregion

### 异常捕捉:Try-Catch

- 用法

	- Try {
	有可能出现错误的代码写这里
}
Catch {
	出错后执行的代码
}
finally {
	无论如何都会执行的代码
}

- Try作用

	-     - 如果代码没有出错,则正常运行Try中的内容,不会执行Catch中的内容。
    - 如果代码一旦出错,立即执行Catch代码,Try后面的代码不再执行了

## 第3章 条件结构和循环结构

### 程序和程序结构

-  ● 程序概念:计算机为了实现某种特定的功能而编写的一段程序
 ● 顺序结构:按照程序的顺序执行
 ● 选择结构:根据给定的条件进行判断,由判断的结果确定下一步的执行
 ● 循环结构:在条件成立的范围内,重复的执行
 ● 条件的本质最终就是布尔值

### if选择结构

- 概念

	- 是一种根据条件判断之后 再做处理的语法结构

- 用法

	- 第一个条件不成立时,执行第二个条件,都不成立执行else

### switch结构

- 概念

	- 用于处理定值的分支

- 属性

	-     -   break:打破的意思 会让代码跳出整个循环体、必须有
    - default:都不满足时,执行这个程序
    -     yield:产生一个指定值来转移控制权

### while和for循环结构

- 概念

	- 在条件成立的范围内,重复的执行

- while():基本循环结构
- do{}while():至少会执行一次,再判断条件
- for():括号里填 初始值、循环条件、条件变化
- 属性

	- continue 跳过本轮循环,下一轮还会继续
break 跳出整个循环体,会执行循环体后面的代码

- foreach循环结构

	- 概念

		-     - 用于列举出集合中所有的元素,可以迭代数组或者一个集合对象
    - foreach循环是只读的,不能遍历修改数据

	- 用法

		- foreach (只读变量 in 集合名) { Console.WriteLine(变量); }

### 字符串的属性

- 得到字符串的字符数:Length
- 不分配存储空间:string.Empty

## 第4章 字符串的属性和方法

### 构造方法:new string('字符',数量)

### 判断字符串是否相同:Equals()

- 不区分大小写:Equals(a, StringComparison.Ordinal IgnoreCase)

### 比较字符串值的大小:string.Compare(Str1,Str2)

- 返回整数

	- 1表示大于
0表示等于
-1表示小于

- 字符一个个进行比较,只要一个字符不相同,那么就停止比较得出结果

### 获取字符串中,内容的索引位置

- 从左边开始找:IndexOf()
- 从末尾开始找:LastIndexOf()

	- 注意点:lastIndexOf,返回的是从左往右数的下标

### 字符串的截取:Substring()

-  一个参数表示从指定的位置截取字符串到结束
- 两个参数表示从参数1开始截取,截取参数2长度的内容

### 分割字符串为字符串数组:Split()

- 分割后用数组接收,分割符会消失,且左右两边的字符串会分成两份

### 拼接字符串数组为字符串:string.Join("拼接符",数组名)

- 数组的数据之间,用拼接符进行拼接

### 字符串转换大小写

- 小写:字符串.ToLower()
- 大写:字符串.ToUpper()

### 去掉字符串的空格:Trim()

-     - 去掉前后空格:字符串.Trim()
    - 去掉前面的空格:字符串.TrimStart();
    - 去掉后面的空格:字符串.TrimEnd();

### 判断是否以指定子字符串开始:StartsWith()

### 判断是否以指定子字符串结束:EndsWith()

### 判断是否包含指定的子字符串:Contains()

### 将指定的子字符串替换成你想要的字符串:Replace()

### 判断字符串是否为空:string.IsNullOrEmpty()

### 槽占位拼接字符串:string.Format()

-     - 占位长度:{槽位 , n}、占n的长度,正数右对齐,负数左对齐
    - 货币格式:{槽位 : Cn}、输出货币格式,保留n的小数位数
    - 保留小数位数:{槽位 : Fn}、保留n的小数位数
    - 数字三位分级法:{槽位 : N}、整数从右到左每三个数加一个逗号
    - 百分比计数法:{槽位 : Pn}、以百分比计数,保留n的小数位数
    - 十六进制格式:{槽位 : X000}、输出十六进制格式

### 字符串的连接:string.Concat(字符串1,字符串2)

### valueOf()

-     - 数据类型.valueOf( 整数或字符串, 指定使用的进制数 );返回对应类型
    - 整数:Integer       小数:Float、Double       字符串:string

XMind - Trial Version

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值