将之前的笔记记录在博客上

C#基础知识

主流语言的应用领域

C: 嵌入式硬件开发
C++: 游戏客户端、服务器、软件
C#: 游戏客户端、服务器、软件、网站

Java: 安卓、服务器、软件、网站
JavaScript: H5游戏、网站、服务器
PHP: 网站、服务器
Python: 网站、服务器、辅助开发

SQL: 数据库
Go: 服务器
Objective-C: 苹果(mac、ios)相关
Swift: 苹果(mac、ios)相关

开发环境搭建

IDE是什么

IDE(Integrated Development Environment )
集成开发环境
它就是一类用于程序开发的软件,这一类软件一般包括了代码编辑、编译器、调
试器、图形用户界面等等工具,只要安装了这种软件我们就可以进行程序开发了。
它的主要作用简单讲就是让计算机能识别你写的程序代码,能够响应你输入的代
码命令,听从你的指令和你进行交流。

常用的IDE(集成开发环境)软件

Visual Studio:一般Windows操作系统使用的软件都由它来进行开发,可用于开发基于C、C++、C#等等语言的软件;
Eclipse和IntelliJ IDEA:一般主要用于开发Java语言的相关软件;
Android Studio: 谷歌推出,主要用于开发安卓应用;
Xcode:苹果推出,主要用于开发苹果应用;

第一个应用程序

理解写代码这件事

通过写代码命令,不停的相互调用系统的或者自定义的一些API,让计算
机通过这些命令来执行一些行为,从而实现一些特定的需求。
比如说做游戏,通过代码相互调用,让图片能够显示在屏幕上,让图片能
够动起来

注释的三种方式

1.两杠注释:用于注释一行信息
2.星号注释:用于注释多行信息
3.三杠注释:用于注释类、命名空间等

快捷注释的方法

1.上方工具栏
2.快捷键
CTRL + K + C 注释
CTRL + K + U 取消注释

折叠代码

由#region #endregion配对出现

控制台输入打印语句

Console.Write():输出
Console.WriteLine:换行输出
Console.ReadKey:检测用户按下
Console.ReadLine:用户输入回车

变量

变量类型

有符号的整形变量

sbyte: -128-127(字节占1);
short: -32768-32767(字节占2);
int: -21亿-21亿多(字节占4);
long: -9百万兆-9百万兆(字节占8);

无符号的整数变量

byte:0-255(字节占1);
ushort: 0-65535(字节占2);
uint: 0-42亿多(字节占4);
ulong: 0-18百万兆(字节占8);

浮点型

float: (字节占4)存储7-8位有效数字,根据编译器不同,有效数字不一样,会四舍五入,后面加f;
double:(字节占8) 存储15-17位有效数字;
decimal:(字节占16)存输27-2位有效数字,不建议使用,后面加m;

特殊类型

bool:非真即假(字节占1);
char:存储单个字符(字节占2);
string:存储多个字符,没有上限(长度可变);

变量的本质

数据传递只能通过电信号,变量的本质是二进制,都是0和1,1bit(一位或者一个数)要不就是0又不就是1,而一个字节(byte)占8位,1byte=0000 0000
通过sizeof获取变量占用的内存空间(例如:sizeof(int);;
1byte=8bit;
1kb=1024byte;
1mb=1024kb;
1gb=1024mb;
1tb=1024gb;

进制转换(整数,左侧第一位表示符号)

十进制转二进制:不停除2;
二进制转十进制:从右往左看,该位不为0,则加上2的n次方(第一位为0);

命名规则

1.不能重名;
2.不能以数字开头;
3.不能是关键字;
4.不能有特殊符号(下划线除外);

驼峰命名法(变量)、帕斯卡命名法(函数、类)

常量

关键字const,必须初始化,不能被修改。

转义字符

是字符串的一部分,用来表示一些特殊含义,如单引号、引号、空行

固定写法

常用的转义字符

':单引号;
":双引号
\n:换行
\:斜杠

不常用的转义字符

\t:制表符(空一个tab键)
\b:光标退格
\0:空字符
\a:警告音

取消转义字符

在字符串前面加一个@(例如@”\你好")

类型转换

不同变量类型之间的相互转换

隐式转换

不同类型之间的自动转换,大范围转小范围

相同大类型之间的转换

特殊类型不存在隐式转换

不同大类型之间的转换

无符号和有符号之间

有符号的变量不能隐式转换无符号的;
无符号的变量隐式转换有符号的前提是范围一定是涵盖的;

浮点数和整数之间

浮点数可以转任何类型整数;
整数不能转换浮点型(不能存小数);

特殊类型和其他类型

char类型可以隐式转换成整数和浮点型(ASCII码);
bool和string不能和其他类型互相转换;

显示转换

手动转换。

括号强转

小范围转大范围,在前面加(),括号强转会出现问题和损失精度,bool和string不能用此转换。

Parse法

把字符串类型转换成对应类型,前提能转换,否则报错。
语法:变量类型.Parse(“字符串”)

Convert法

更准确的把各个类型之间转换,精度比括号转好,会四舍五入,前提是变量和常量必须正确。
语法:Convert.To目标类型(变量或者常量)

其他类型转string

作用:拼接打印;
语法:变量.ToString();

异常捕获

避免程序报错造成卡死

try{
  
}catch{
  
}finally{
  
}

运算符

算数运算符

赋值运算符:=
算数运算符:+ - * / %
复合运算符:+= -+ *= /= %=
自增运算符:a++(先用再加) ++a(先加再用)

运算符的优先级

1.乘除大于加减;
2.括号优先;

字符串拼接

方法一:+号拼接;
方法二:string.Format(“{0}”,18);
控制台打印拼接:支持类似方法二;

条件运算符

只要是数值就可以进行条件运算符比较大小等等,特殊类型只能与同类型进行==和!=比较(char不一样)。
条件运算符:> < == != >= <=;

逻辑运算符

逻辑运算符:&& || !

运算符优先级

!优先级最高,&&优先级高于||,逻辑运算符优先级低于算数运算符和条件运算符。

位运算符

位与:&(连接俩个数值进行位计算,转换成2进制计算,有0则0)
位或:|(有1则1)
异或:^(对位运算,相同为0,不同为1)
位取反:~(0变1,1变0,反码补码问题)
左右移:<<(左移几位,右边加几个0) >>(右移几位,右边去几个数)

三目运算符

语法:空位(bool类型)?空位:空位;

条件分支语句

if语句

if(){
  
}else if(){
  
}else{
  
}

switch语句

switch(){
  case 变量:
  break;
  default:
  break;
}

循环语句

while循环

while(循环跳出条件){
  
}

do-while循环

do{
  
}while();

for循环

for(int i=1;i<条件;i++){
}

foreach循环

foreach(var i in 集合需要继承自一个接口){
  
}

知识补充

控制台相关

1.Console.Readkey().Keycahr-可以保存输入的字符;
2.Console.Clear()-清空控制台;
3.Console.SetWindowSize(宽,高);
4.Console.SetBufferSize(宽,高)-缓冲区大小;
5.Console.SetCursorPosition(x,y)-设置光标的位置
6.Console.ForegroundColor=ConsoleColor.颜色-设置文件颜色
7.Console.BackgroundColor=ConsoleColor.颜色–设置背景颜色,想立马改变用clear
8.Console.CursorVisiable=false-设置光标显隐
9.Environment.Exit(0)-关闭控制台

随机数

语法:Random 变量名=new Random();
生成非负数:变量名.Next(最小到最大,范围不包括最大);