对变量进行简单操作、流程语句块执行判断、将变量或表达式值从一种类型转换为另一种、异常处理、数值溢出
操作变量
一元运算符
由于一元运算符容易混淆,建议单独使用,不要和=一起使用
- i++、i--
先赋值后运算 - ++i、--i
先运算后赋值
int a=3;
int b=a++;
Console.WriteLine($"a={a},b={b}");
a=3;
b=--a;
Console.WriteLine($"a={a},b={b}");
二元运算符
+、-、*、/、%
赋值运算符
=、+=、-=、*=、/=
逻辑运算符
&、|、^(异或运算符,只有一个为true则为true。相同为false、相反为true)
条件逻辑运算符/短路布尔运算符
&&、||
移位运算符
<<、>>其能够更快地执行某些运算
其他运算符
- nameof以字符串的形式返还变量、类型或成员的短路名称(可用于输出异常消息)
- sizeof返回简单类型的字节大小(确定内存大小效率)
int age=47;
Console.WriteLine(nameof(age));
Console.WriteLine(sizeof(int));
流程控制
if
C7.0增加了if语句可以将is关键字与局部变量声明结合,判断其是否为某种类型,如果是则临时赋值,并且可以在语句块中使用该变量,使用更安全
if (true)
{
}
else if (false)
{
}
object o = "3";
if (o is int a)
{
Console.WriteLine(true);
Console.WriteLine(a);
}
else
{
Console.WriteLine(false);
Console.WriteLine(o);
}
swith语句
swith语句对应每个case的内容可以有:
- break 退出swith
- goto case 关键字
- 没有语句
- return 退出当前函数
- default 未匹配
应避免使用goto跳转到另一个case
swith在C#7之后可以匹配模式
不仅仅可以匹配字面值
List<string> list = new List<string>();
switch (list)
{
case List<string>:
Console.WriteLine("List");
break;
}
switch可以通过when匹配简化
迭代语句
while
- while和do while
while (true)
{
}
do
{
} while (true);
for循环
- fori循环
for (int i = 1; i < 10; i++)
{
}
- foreach循环
foreach循环需要对象实现迭代器,内部获得的对象不能修改原对象的值
foreach (string s1 in list)
{
}
类型转换
强制类型转换
分为隐式和显式转换,
- 隐式
安全,自动执行(小->大) - 显式
不安全可能会丢失信息,手动执行(大->小)
使用()强转
int a=10;
double b=a;//小转大,隐式
long c=20;//大转小,显式
a=(int)c;
System.Convert类型转换
基本类型
- System.Convert可以转换所有基本类型、字符串、日期和时间
var int32 = System.Convert.ToInt32(b);
转换数字
- 可以四舍五入或者自定义取整规则
二进制、Base64字符串互相转换
- 将二进制对象转换为Base64字符串
Convert.ToBase64String - 将Base64字符串转换为二进制对象
Convert.FromBase64String
日期、时间和字符串相互转换
- 转换为字符串
ToString - 转换为日期、时间
Parse(),如果不能转换则会抛出异常可以用TryParse()方法先进行验证,如果可以转换则为true,否则返回false
Comments | 0 条评论