自增自减运算符:
分析下边代码:
n1 ++ 相当于先把n1的值赋值给res1,之后n1 ++ ,n1结果为3,然后执行 ++ n1,相当于++3,res2结果为4,所以最后打印结果:res1为2, res2为4。
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
int n1 = 2;
int res1 = n1++;
int res2 = ++n1;
Console.WriteLine(res1); // 2
Console.WriteLine(res2); // 4
Console.ReadLine();
}
}
}
关系运算符:
这里只说下等号(==),返回的是bool值
( 只有相同类型值才可以比较,否则会报错!!!)
逻辑运算符:
&&(&)、||(|)、!
注意即可使用两个&,也可以使用一个&;| 同上。
条件运算符:
也就是三目运算(也可以嵌套使用,跟js一样):
判断 ? 结果1 : 结果2;
类型转化:
先来看下下边几个表达式,最后我们把double类型的数值赋值给int整数类型d,会报错,原因:double类型精度要比int类型高!
错误提示:
隐式类型转化:(从低往高转换 - 从范围小的到范围大的转换)
在某种情况下,系统会自动完成类型转换(即隐式类型转换)
(1)两种类型兼容:如,double兼容int类型
(2)目标类型精度大于源类型:如,double类型大于int类型
(关于隐式类型转换以后会详细补充!)
显示类型转换:(从高往低转换)
(1) 强制类型转换:在需要转换的值前边加小括号,里边是需要转换的类型:
(如果数据错误,不会提示错误信息)
int a = (int)10.2;
double b = 10.5;
int c = (int)a;
Console.WriteLine(a); // 10
Console.WriteLine(c); // 10
下边输出结果令人失望,因为long类型的值超出了int值的范围,发生数据溢出错误,我们可以使用第二种方式类转化:见(2)
***(2) Convert.To类型名 (表达式)
(此方法可以对数据类型进行显示转换,如果数据出现错误或溢出,会提示错误信息,开发中会很容易发现问题所在!!)
c#中的 几个转换的函数:
(1)Parse()
- 专门为了解析字符串的
string a = "123";
string b = "123";
int n = int.Parse(a) + int.Parse(b);
Console.WriteLine(n); // 246
(2)TryParse()
(3)ToString() 非常常用
- 把别的类型转换为字符串类型
int a = 1;
Console.WriteLine(a.ToString());
运算符的优先级:
左后一栏箭头方向表示从左向右运算 或者 从右向左运算:
从右向左开始计算:
其他运算符是从左向右计算。
在实际开发中,如果不熟悉运算符优先级,可以使用小括号进行分解,此方法也可以提高代码阅读性!