C#系列之特殊语法

目录

1.var隐藏类型

2.设置对象初始值

3.设置集合初始值

4.匿名类型

5.可空类型

 1 值类型不能赋值为空,比如:

 2 声明时,在值类型后面加?就可以赋值为空了。

 3 判断是否为空

 4 安全获取可空类型值neich

6.空合并操作符

7.内插字符串

8.单句逻辑省略写法

 1 当循环或者if只有一句时,就可以省略大括号

 2 在属性里面省略return的写法

 3 有返回值时返回返回值,有逻辑时执行逻辑


1.var隐藏类型

var是一种特殊的变量类型,它可以用来表示任意类型的变量。

注意:var不能作为类的成员,只能用于临时变量声明时,也就是一般写在函数语句块中,var必须初始化。

(可变类型的变量,一般用于不确定类型时使用,但是一旦赋值,类型就确定下来了,不适合协同开发)

var i=5;
var s="Nicole Potter";

2.设置对象初始值

声明对象时,可以通过直接写大括号的形式初始化公共成员变量和属性。

比如:

Person p=new Person{sex=true,Age=19,Name="Nicole Potter"};

括号()省略不写,当无参构造被有参构造顶替时里面必须传参,否则会报错。

比如:

//可以通过直接写大括号的形式初始化公共成员变量和属性
Person p=new Person(2000){Age=19};

3.设置集合初始值

//声明集合对象时,也可以通过大括号直接初始化内部属性
int[] array=new int[] {1,2,3,4,5};
List<int> list=new List<int>() {1,2,3};
List<Person> list2=new List<Person>()
{
 new Person(200),
 New Person(100){Age=10}
};
//假设Person是一个自定义类的类名

同理,Dictionary也是如此。

4.匿名类型

var变量可以声明为自定义匿名类型

var v=new{age=10,money=11,name="Nicole Potter"};

Console.WriteLine(v.age);

注意:lambda表达式不可以放在匿名函数之中,会报错。

5.可空类型

 1 值类型不能赋值为空,比如:

int c=null;   //会报错。

 2 声明时,在值类型后面加?就可以赋值为空了。

int? c=null;  //不会报错

 3 判断是否为空
if(c.HasValue)
{
   //方法一
   Console.WriteLine(c);

   //方法二
   Console.WriteLine(c.Value);
}

这两种方法都是一样的效果,tostring最终用的value.

 4 安全获取可空类型值neich

int? value=null;

4-1如果为空,默认返回值类型的默认值

Console.WriteLine(value.GetValueOrDefault());

4-2也可以指定一个默认值

Console.WriteLine(value.GetVlueOrDefault(100));
//这里不是为value赋值
object o=null;
if(o!=null)
{
  Console.WriteLine(o.ToString());
}
//相当于是一种语法糖,能够帮助我们自动去判断o是否为空
//如果是null就不会执行tostring也不会报错
 Console.WriteLine(o?.ToString());

6.空合并操作符

空合并操作符??

左边值??右边值

如果左边值为null就返回右边值,否则返回左边值。

只要是可以为null的类型都可以用。

int intI=intV??100;
Console.WriteLine(intI);

??运算符帮助我们进行了intV.Value的操作,所以不需要再次使用点的操作,简写。

7.内插字符串

关键符号:$

用$来构造字符串,让字符串中可以拼接变量。

string name="Nicole Potter";
int age=19;
Console.WriteLine($"{name},Age:{age}");

前提是要有这种符号,不然就达不到这种效果。会直接变成字符串。

8.单句逻辑省略写法

 1 当循环或者if只有一句时,就可以省略大括号

if(true)

  Console.WriteLine("Nicole Potter is a clever boy.");

 2 在属性里面省略return的写法
//此时如果写return就会报错,比如:
public string Name
{
  get=>"Nicole Potter";
}
 3 有返回值时返回返回值,有逻辑时执行逻辑
public int Add(int x,int y)=>x+y;

注意:这几种写法都是在只有一句代码时适用!!!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nicole Potter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值