C# 笔记17 特殊语法

知识点一 var隐式类型

var是一种特殊的变量类型
它可以用来表示任意类型的变量
注意:
1.var不能作为类的成员 只能用于临时变量申明时
  也就是 一般写在函数语句块中
2.var必须初始化

var i = 5;
var s = "123";
var array = new int[] { 1, 2, 3, 4 };
var list = new List<int>();
知识点二 设置对象初始值

测试用:

class Person
{
    private int money;
    public bool sex;

    public string Name
    {
        get;
        set;
    }

    public int Age { get; set; }
    public Person(int money)
    {
        this.money = money;
    }
}

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

Person p = new Person(100) { sex = true, Age = 18, Name = "asd" };
Person p2 = new Person(200) { Age = 18 };
知识点三 设置集合初始值

申明集合对象时

也可以通过大括号 直接初始化内部属性

int[] array2 = new int[] { 1, 2, 3, 4, 5 };
List<int> list2 = new List<int>() { 1, 2, 3, 4, 5, 5 };

List<Person> list3 = new List<Person>() {
    new Person(100),
    new Person(100) { Age = 10 } };

Dictionary<int, string> dic = new Dictionary<int, string>()
{
    {1,"223" },
    {2,"231" }
};
 知识点四 匿名类型

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

var v = new { age = 10, money = 11, name = "xiao" };
知识点五 可空类型

1.值类型是不能赋值为 空的
 int c = null;//不可
2.申明时 在值类型后面加? 可以赋值为空

int? c = null;

3.判断是否为空

if (c.HasValue)
{
    Console.WriteLine(c);
    Console.WriteLine(c.Value);
}

4.安全获取可空类型值

int? value = null;

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

Console.WriteLine(value.GetValueOrDefault());

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

Console.WriteLine(value.GetValueOrDefault(100));//无值返回100

其他用法:

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

int[] arrryInt = null;
Console.WriteLine(arrryInt?[0]);

Action action = null;
action?.Invoke();
 知识点六 空合并操作符

空合并操作符 ??
左边值 ?? 右边值
如果左边值为null 就返回右边值 否则返回左边值
只要是可以为null的类型都能用

int? intV = null;
//int intI = intV == null ? 100 : intV.Value;
int intI = intV ?? 100;
Console.WriteLine(intI);

string str = null;
str = str ?? "hahah";
Console.WriteLine(str);
知识点七 内插字符串

关键符号:$
用$来构造字符串,让字符串中可以拼接变量了

string price = "122";
Console.WriteLine($"Money:{price}");
知识点八 单句逻辑简略写法

当循环或者if语句中只有 一句代码时 大括号可以省略

if (true)
    Console.WriteLine(price);
for (int j = 0; j < 10; j++)
    Console.WriteLine(j);

int Add(int x, int y) => x + y;

void Speak(string str) => Console.WriteLine(str);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值