C# 冷知识

C# 的冷知识:@,?,??,?: 的用法

直接贴上一段代码,先看下面的代码

public struct Vector{
	int x;
	int y;

	public Vector(int x, int y){
		this.x = x;
		this.y = y;
	}
}

public class MyClass {
	static int Func1(string @string, Vector? vector = null){
		string @return = "xxx";
		Vector? v1 = new Vector(0, 0);
		Vector? v2 = null;
		vector = v1 ?? v2;
		vector = @return == "" ? v1 : v2;
		return 0;
	}
}

1. @用法

@除了转义字符串之外,还有另一个用处,就是修饰参数字段,被@修饰的参数字段,如果是语法中关键字,它将失去它的意义,例如Func1中的@string和@return,当然,原有的关键字依然可以使用。

2. ?用法

?跟在类型后面,作用是:让一个不能为null的类型变量可以为null
例如Vector结构体不能为null,加上?后就可以复制null了。

3. ??用法

??是判断连个表达式或者两个变量,意义为:??左边不为null返回左边的值,否则发返回右边的值。注意,如果多个连续运算,如v1 ?? v2 ?? v3,是从右往左运算的,及v1 ?? (v2 ?? v3)

4. ?:用法

?:就是三元原运算符,意义为:判断?左边表达式为ture还是false,真则返回:左边的值,假则返回:右边的值。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值