1、C#的类型范围
就sbyte来说,为什么它的范围是-128~127
因为第一位是符号位,正为0,负为1,而负数的2进制表示是正数的补码,补码是取反加1,所以128的反码二进制表示是01111111,加1后得到10000000,而有意思的是这表示为-0,也就是说128的补码在有符号数中表示为-0,而在有符号数中,通常将最高有效位为0的认为是正数,最高有效位为1的认为是负数,因此1000 0000就表示为-128了。所以8位有符号整数的范围是-128~127。
2、DateTime的一个属性
Console.WriteLine(" 登录时间:" + DateTime.Now);//输出的是现在的时间
以上我们知道DateTime.Now返回的是一个string类型的字符串。该模块用来获取日期相关的信息
3、关于多级目录的转义
例如Console.WriteLine("C:\\Windows\\Microsoft.NET\\Framework\\......");
这样子转义的话每次遇到一个\都要进行转义非常麻烦
所以遇到这种情况我们可以使用@来编写
代码修改如下:
Console.WriteLine(@"C:\Windows\Microsoft.NET\Framework\......");
这样就非常方便并且清晰。
4、常量的一些东西
常用的常量定义符有两种,分别是const常量和readonly常量,从字意上可以知道,const是静态常量,必须在定义的时候初始化赋值;readonly常量是只读常量,不能在构造函数之外另外给他赋值。换言之,在构造函数中定义过了之后,其他函数只能拿来用而不能将其归为己有。
5、Console.WriteLine的一些东西
如下两种形式是一样的
Console.WriteLine("最后计算的结果:{0} + {1} + {2} = {3}", d, d2, d3, d + d2 + d3);
Console.WriteLine("最后计算的结果:"+ d +"+"+ d2 + "+" + d3+ "=" + m);//m = d1 + d2 + d3
很显然,第一种编写方法更清晰简洁
Console.Write("输入第1个数字:");//提示用户输入第1个数值
double d = double.Parse(System.Console.ReadLine());//得到第1个数值
以上代码的double.parse()方法是将数字字符串变更为等效双精度浮点数。
6.Convert类的用法
int intTime = Convert.ToInt32(Console.ReadLine());
将字符串类型转换成32位int整型的方法
另外有
int intTime = int.parse(System.Console.ReadLine());
这两种都可以将字符串string类型转换成int整型,但是*Convert.ToInt32()*的参数比较多,Int.Parse只能转换string类型的,所以一般都使用Convert.ToInt32比较多()。
7.条件运算符
一般格式
<表达式1>?<表达式2>:<表达式3>
条件运算符的表达式1返回的是一个布尔值,当表达式1为真时,返回表达式2的结果,否则返回表达式3的结果。
其实条件运算符相当于一个if.else语句,但是比if.else语句写法简便
需要注意的是条件运算符的结合性是从右向左的。
8.数据类型转换
(1).隐式类型转换:按精度从低到高排列的顺序为byte<short<int<long<float<double
低精度转高精度不需要强制转换
(2).显示类型转换:有时候当高精度的类型转换成低精度类型时会损失数据,因此这个时候就要进行强制转换,例如
float y;
y= (float)x;
9.运算符结合性
(1).算数运算符、移位运算符、关系运算符、逻辑运算符都是从左向右
(2).单目运算符、条件运算符、赋值运算符是从右向左的
具体参考
https://www.cnblogs.com/Unrmk-LingXing/p/4168993.html
https://blog.51cto.com/cnn237111/1634923