本文为C#入门知识,是在有一定C语言或C++基础上进行的总结,因此会省略许多C语言的基础知识,但是对一些C#特有或者是C语言中比较少见或重要的知识也会归纳到博文里。
目录
前言
一、输入输出
二、变量
1.折叠代码
2.声明变量
a.有符号的整型变量
b.无符号的整型变量
c.浮点数
d.特殊类型
三、常量
四、转义字符
五、类型转换
1.隐式转换
a.同类型之间转换
b.不同大类型之间的转换
2.显式转换
a.括号强转
b.Parse法强转 把字符串类型转换为对应的类型
c.Convert法
d.其他类型转string
七、算术运算符
八、字符串拼接
1.string可以通过+来进行字符串拼接
2.字符串拼接方式2
3.控制台打印拼接
九、条件运算符
1.不同数值类型之间
2.特殊类型char string bool
十、逻辑运算符
1.注意
2.逻辑运算符短路规则
十一、位运算符
1.位与运算 &
2.位或运算 |
3.异或运算 ^
4.位取反 ~ (了解即可)
5.左移<< 和右移>> (了解即可)
十二、三目运算符
十三、 if语句
十四、switch语句
十五、while语句
十六、do while语句
十七、for循环
作用:将中间包裹的代码折叠起来 避免代码凌乱 编辑时起作用
#region MyRegion
...
#endregion
公式:变量类型 变量名 = 初始值;
变量类型有14种:
能存储正负数和0 下面给出大概范围(赋值时超出范围会报错)
示例代码
sbyte a = 1;
Console.WriteLine("存储的数:"+a); //输出之间的连接用+
能存储一定范围0和正数
float f = 0.1234f; //后面要加f 大小写均可
double d = 0.12456434;
decimal de = 0.124543534234t254m; //后面要加m 大小写均可
string s1="hello", s2="world", s3="good"; //多个变量同时声明
常量的声明 (特点:必须初始化、不能被修改)
const 变量类型 变量名 = 初始值;
const int i = 10;
公式:\字符
常用转义字符如下表
单引号 |
\' |
双引号 |
\" |
换行 |
\n |
斜杠 |
\\ |
Tab制表 | \t |
退格 | \b |
规则:(不同类型之间自动转换)大范围转小范围
long a = 1;
int b = 2;
a = b;//int隐式转换为long
b = a;//这句是不对的!小范围不能转大范围
对于浮点数之间,要注意decimal类型无法用隐式转换去存储double和float,但float可以转换成double。特殊类型bool、char和string之间不存在隐式转换
!有符号的变量不能隐式转换成无符号的变量
错误代码示例:
ushort us2 = 1;
sbyte sb2 = 1;
us2 = sb2;//错误代码!不能转换
!无符号的变量可以转有符号的变量,但前提是有符号的变量覆盖的范围要包括无符号的类型
int i2 = 1;
uint ui2 = 1;
byte b2 = 1;
i2 = ui2;// 错误!无法覆盖无符号数的全部范围
i2 = b2;// 正确代码
需要手动处理 强制转换
公式:变量类型 变量名 = (变量类型)变量
(1)相同大类之间(无符号整型、有符号整型、浮点数) 括号强转可能出现范围问题造成异常
short s = 1;
int i = 1;
s = (short)i;
(2)不同类型之间
变量类型.Parse("字符串") 字符串必须能够转换成对应的类型,不然会报错
int i4 = int.Parse("123");
float f3 = float.Parse("1.232");
bool b = bool.Parse("true");
int i4 = int.Parse("123.45");//错误语句,会报错!
short s4 = short.parse("300000");//错误语句,超出范围,会报错!
更准确的各类型之间相互转换
Convert.To目标类型(变量或常量) 把字符串转对应类型要合法合规
int a = Convert.ToInt32("12");
int a = Convert.ToInt32(12.2f);//正确语句 且Convert精度更高,可以四舍五入
int a = Convert.ToInt32(ture);//正确语句 true转为1,false转为0
int a = Convert.ToInt32('a');//正确语句 char转为对应ASCII码
int a = Convert.ToInt32("12.2");//错误,不合法转换
作用是拼接打印
变量.ToString(); //任何类型都可以用
string str = 1.ToString();
Console.WriteLine("123"+1+true);//这句话是正确的,后面两个会默认调用ToString方法
六、异常捕获
通过异常捕获,避免代码报错时程序卡死
基本语法:
try
{
//希望进行异常捕获的代码块
//如果出错执行catch中的
}
catch
{
//catch(Excepetion e) 具体报错跟踪 通过e得到具体错误信息
}
//可选部分
finally
{
//不管有没有错都会执行
}
与C语言无区别
string str = "123";
str = str + "456";//正确
str = str + 1;//正确,默认调用1.ToString();
str += "1" + 4 + true;//正确,复合运算和ToString()都起作用
string.Format("待拼接内容",内容1,内容2);
想要被拼接的内容用占位符替代{数字}:0~n 依次往后
string str2;
str2 = string.Format("我是{0},我今年{1}岁,我想要{2}","Daniel",18,"study");
后面的内容比占位符多不会报错,比占位符少则会报错
Console.WriteLine("A{0},B{1},C{2}",1,ture,false);
符号与C语言相同
规则:可以随意进行条件运算符比较
int i = 5;
float f = 1.2f
short s = 2;
byte by = 20;
uint ui = 222;
// 以下语句都成立 只要是数值都可以进行比较
result = i > f;
result = f < d;
result = f > by;
规则:只能同类型之间进行==和!=的比较
由于char是特殊的整型,因此它既可以和自己同类型比较 还可以和数值类型进行比较 还可以和字符类型进行大小比较
char c = 'a';
result = c > 123;
result = c > 'B';
逻辑与:&& 逻辑或:|| 逻辑非:!
符号和规则与C语言中相同
逻辑运算符当中逻辑非(!)的优先级最高 逻辑与(&&)优先级高于逻辑或(||)
逻辑运算符优先级要低于条件运算符和算术运算符
只要逻辑与或者逻辑或左边满足了条件 右边就不需要再执行
比如逻辑与是有假则假,左边表达式为假,右边便不需要再执行
规则:连接两个数值进行位计算 将数值转为2进制
规则:有0则0
int a = 1; // 002
int b = 5; // 101
int c = a & b;
// 001 & 101 = 001 所以c也就是1
有1则1
1|0=1
规则:相同为0 不同为1
写在数值前面 将数值转为2进制
0变1 1变0 涉及补码
让一个数的2进制进行左移和右移
左移几位 右侧加几个0
右移几位 右侧去掉几个数
原理等同C语言
原理等同C语言
原理等同C语言
原理等同C语言
原理等同C语言
原理等同C语言
下篇为C#基础知识总结,欢迎接续阅读
C#基础知识大总结(在C语言的基础上)_丹牛Daniel的博客-CSDN博客