C# 学习笔记(整理)

C# 数据的类型转换

Convert 和 Parse :

             将    string locstr = 169.ToString();     转换为整数型

方法1:

              int i = Convert .ToInt16(locstr);            //用 Convert

方法2:

              int i = int .Parse(locstr);                   //用 Parse

Convert.ToInt32() 与 int.Parse() 的区别

(1) 这两个方法的最大不同是它们对 null 值的处理方法: Convert.ToInt32(null) 会返回 0 而不会产生任何异常,但 int.Parse(null) 则会产生异常。

(2) 对数据进行四舍五入时候的区别

  •  a. Convert.ToInt32(double value) 如果 value 为两个整数中间的数字,则返回二者中的偶数;即 3.5 转换为 4,4.5 转换为 4,而 5.5 转换为 6。不过 4.6 可以转换为 5,4.4 转换为 4 。
  •  b. int.Parse("4.5") 直接报错:"输入字符串的格式不正确"
  •  c. int(4.6) = 4 Int 转化其他数值类型为 Int 时没有四舍五入,强制转换。

(3) 对被转换类型的区别 int.Parse 是转换 String 为 int, Convert.ToInt32 是转换继承自 Object 的对象为 int 的(可以有很多其它类型的数据)。你得到一个 object 对象, 你想把它转换为 int, 用 int.Parse 就不可以, 要用 Convert.ToInt32。


C# 运算符 

  • c = a++: 先将 a 赋值给 c,再对 a 进行自增运算。
  • c = ++a: 先将 a 进行自增运算,再将 a 赋值给 c 。
  • c = a--: 先将 a 赋值给 c,再对 a 进行自减运算。
  • c = --a: 先将 a 进行自减运算,再将 a 赋值给 c 。

例:int a = 1;

       int b ;

b = a++;                   // a=2 , b=1

b = ++a;                   // a=2 , b=2

b = a--;                    // a=0 , b=1

b = --a;                     // a=0 , b=0


可空类型修饰符 " ? "

为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符 ? 来表示,表现形式为 T? 。

例如:int? 表示可空的整形,DateTime? 表示可为空的时间。

三元(运算符)表达式  " ?: "

例如:x?y:z 表示如果表达式 x 为 true,则返回 y;如果 x 为 false,则返回 z,是 if{ } else{ } 的简单形式。

空合并运算符 " ?? "

用于定义可空类型和引用类型的默认值。

如果此运算符的左操作数不为 null,则此运算符将返回左操作数,否则返回右操作数。

例如:a??b 当 a 为 null 时则返回 b,a 不为 null 时则返回 a 本身。

空合并运算符为右结合运算符,即操作时从右向左进行组合的。

如: a??b??c 的形式按 a??(b??c) 计算。

NULL 检查运算符 " ?. "

int? firstX = points?.FirstOrDefault()?.X;

移位运算 "  >> " 或  " << "

C# 是用 <<(左移) 和 >>(右移) 运算符是用来执行移位运算。

左移 (<<):将第一个操作数向左移动第二个操作数指定的位数,空出的位置补 0。

左移相当于乘. 左移一位相当于乘2;左移两位相当于乘4;左移三位相当于乘8。

x<<1= x*2
x<<2= x*4
x<<3= x*8
x<<4= x*16

同理, 右移即相反:

右移 (>>):将第一个操作数向右移动第二个操作数所指定的位数,空出的位置补 0。

右移相当于整除. 右移一位相当于除以 2;右移两位相当于除以 4;右移三位相当于除以 8。

x>>1= x/2
x>>2= x/4
x>>3= x/8
x>>4= x/16
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值