C#学习笔记(3)——参数修饰符和可空类型(Nullable)

一个尝试错误的人生,不但比无所事事的人生更荣耀,并且更有意义。

一、参数修饰符

1. 修饰符种类

  • 无修饰符:该参数将按值进行传递,即被调用的方法收到原始数据的一份副本。(传入参数的修改不影响原参数值)
  • out:输出参数由被调用的方法赋值,因此按引用传递。(相当于传递地址)                                    out可以实现多个返回值 。
  • ref调用者赋初值,并且可以由被调用的方法可选的重新赋值,按引用传递。(ref不赋初值,也不会报错)

2. out和ref的区别

  1. out修饰的参数必须在方法内修改,ref可改可不改。
  2. out在传入参数时,是局部变量则可以不赋值。out会对其赋值。
  3. ref修饰的参数,在实参必须有初始值才能调用。ref不一定会赋值。

 

二、 可空类型(Nullable)

可空类型,?对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的。 

1. 语法

声明一个 nullable 类型(可空类型)的语法如下:

int? i = null;

 注意:

int j; //默认值0
int? j; //默认值null

 2. 合并运算符(??)

Null 合并运算符用于定义可空类型和引用类型的默认值。Null 合并运算符为类型转换定义了一个预设值,以防可空类型的值为 Null。Null 合并运算符把操作数类型隐式转换为另一个可空(或不可空)的值类型的操作数的类型。

??相当于条件运算符?:

例如:

int? i = null;
double? j = 4.2;
double m;
m = i ?? 3.6;
Console.WriteLine("m的值为:{0}", m);
m = j ?? 3.6;
Console.WriteLine("m的值为:{0}", m);
Console.ReadLine();
结果为:
m = 3.6
m = 4.2

相当于:

m = (i == null) ? 3.6 : (double)j;
Console.WriteLine("m的值为:{0}", m);
Console.ReadLine();
 
结果为:
m = 3.6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值