操作符三

1.类型转换
(1)隐式implicit类型转换

  • 不丢失精度的转换
  • 子类向父类的转换
  • 装箱 zhi—object
    (2)显式explicit类型转换
  • 有可能丢失精度(甚至发生错误)的转换,即cast
  • 拆箱 object —zhi
  • 使用Convert类
  • ToString方法与各数据类型的Parse/TryParse方法
    (3)自定义类型转换操作符
    示例:
    C# 入门详解
    stone和monkey之间计算机的转换不能识别,需要自定义转换方法。在被转换的类型里进行。

往下展开:
int x = Convert.ToInt32(string);
不丢失精度的转换:int转成long,single转换double等
C# 入门详解
子类向父类的转换:
C# 入门详解
Teacher t = new Teacher();
Human h = t;
h. 此时成员访问符,看不到实例中t的方法teach,因为规定引用变量去访问引用的实例的成员时,只能访问到变量h的类型所具有的类型。此例中human类具有eat和think方法。

(T)x 显示类型转换:
有可能精度丢失甚至发生错误的强制类型转换cast:
uint x = 65536;
ushort y = (ushort)x;
C# 入门详解
Covert类:
bool byte,single string uint16 uint32 等

其他类型转换为string时:
调用tostring静态方法;
parse方法。只能解析格式正确的字符串类型。doublex = double.parse(a,b) 这就不行
就会用到tryparse 总会返回一个bool值,成功为true,转换失败为false

运算操作符:
±/ %
整数乘法 乘号两边是int uint long ulong
浮点类型single double float
务必留意“数值提升”
比如var x = 3.0
4 =12.0 x 是double型
int x= 5;
int y = 4;
int z = x/y ; z=1; 整除需要注意被除数不能为零

浮点类型可以除零 double x =5.0; double y = 0;
正数/0 = 正无穷大 负数/0=负无穷大
double x= (double)5/4 (1.25,是浮点型)
double x = double(5/4) (1.0,是int转换成的浮点型)

移位操作符:<<左移 >>右移
int x = 7; int y= x<<1; 转换成二进制进行移位

左移不管是正数还是负数,补进来的都是0;
右移正数最高位补 0 负数最高位补1

关系操作符:<> <= >= (is as)类型检验 运算结果都是bool型的
除了比较数值类型还可以比较字符类型 或者字符串是否相等
char char1=‘a’; 97
char char2 = ‘A’; 65
var result = char1> char2 结果为true

逻辑操作符:
位与& 位或| 按位异或^ (不一样时才会为真)
int x=7; int y=28; int z= x&y; 转换成二进制按位求与

条件与&& 条件或|| 一般是来操作bool类型的值的
int x = 5; int y=4; int a = 100; int b= 200;
if(x>y && a<b) 为真

null合并
Nullable x=null; 可空int类型
int?x = null; 同上
int y = x??0; 如果x是null值,那我用0来代替

条件操作符:?:

赋值和lambda表达式
赋值操作符是从右向左进行

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-03
  • 2021-11-02
  • 2021-12-05
  • 2021-11-23
猜你喜欢
  • 2022-01-03
  • 2022-12-23
相关资源
相似解决方案