Share this post on:

1.var x,让程序推断是什么类型,隐式变量声明

2.new: From myFrom = new From(){Text = “Hello”};第一个From是类型,必须要类型相同的,才能赋值,myFrom是变量名,new新建出一个From的实例,并用()调用实例的构造器,new会把拿到的实例的地址交给myFrom。{}可以直接调用实例的初始化器。

3. 隐式类型转换(implicit),一般都是小转大,如int x = y;y是int16这类,还有子类向父类转换,但没办法用子类的方法。装箱。

显式类型转换(explicit):可能会丢失精度甚至发生错误(cast),一般是(int)12;12是string类。拆箱。convert类是把字符串类型数据转换成值类型的数据。ToString相反,Parse只能解析格式正确的字符串数据类型。

类之间也可以进行显式转换,但需要把转换器写在被转换类型里面。类之间隐式转换只需要把public static explicit operator Monkey(Stone stone)中的explicit改成implicit。修改后,类型转换时可以吧(Monkey)stone中的(Monkey)整个去掉。

4.‘/’整除不能除以0但浮点除法可以

浮点乘法表
浮点除法表

5.加法操作符正无穷加负无穷等于NaN,正无穷减正无穷也是NaN。

加法运算
减法运算

6. 加法操作符正无穷加负无穷等于NaN,正无穷减正无穷也是NaN。在没有溢出时移位符左移一位相当于乘二,右移相当于除以二 ,左移不管正负都在后面补0,右移如果是负数会在左边补1.

7.is是用来检验一个对象是不是某一个类型的对象。

8.逻辑:位与(&):按位求与,都是1得1,不然得0。位或(|):按位求或,有1得1,无1得0。异或(^):按位异或,不同得1,相同得0。

9.条件与和条件或:注意条件与,前者条件不满足就不判断后者;条件或,前者条件满足就不判断后者即可。

10.int不能是null值,但可以nullable<int> x = null;也可以写成int ? x = null;int y = x ?? 1;??会判断x是否为null,如果为空则拿1替代。

11.str = x >= 60 ? “pass” : “failed”; ‘?:’ 相当于if else,如果x大于60返回左边的pass,不然返回右边的failed。

str = (x >= 60) ? “pass” : “failed” ,一般加括号提高可读性。

12.var x = 5 > 3 ? 2 : 3.0;此处=会选择精度高的,就算得出结果是2,也会变成double类型。: 两边必须要进行隐式类型转换才行,(”2.0″: 3.0这种是报错的。)

13.赋值表达式本身有值和类型,如x = 100,y = x这种情况,如果打印y=x可以得到100,打印类型会得到int32。

Share this post on:
Avatar 铭

Author: 铭

一个整天宅在宿舍看番的萌豚,技术力低下,希望大家监督

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注