目录
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;
注意:这几种写法都是在只有一句代码时适用!!!