c#学习笔记 特殊语法

本文是C#学习笔记,重点探讨C#中的特殊语法特性,包括但不限于委托、事件、属性、索引器、运算符重载等。通过实例解析,帮助读者深入理解这些语法的应用场景和实现方式。
using System;
namespace 特殊语法
{
    class Person
    {
        public string Name { get; set; }
        public bool Sex { get; set; }
        public void Speak ()
        {
            Console.WriteLine ("name:" + Name + " sex:" + (Sex? "男": "女"));
        }
    }
    class Program
    {
        static void Main (string[] args)
        {
            // 1。设置对象初始值---------------------------------------------------
            // 声明对象时,可以通过以下形式初始化public的成员属性和字段
            // 有无参构造函数时,括号可写可不写
            Person p = new Person () { Name = "li", Sex = true };
            p.Speak ();
            // name:li sex:男
            // 匿名类.不能有函数
            var anonymous = new
            {
                age = 10, name = "li",
                    // fun = () =>
                    // {
                    //     Console.WriteLine ("fun");
                    // }无法将“lambda 表达式”分配给匿名类型属性
            };
            // anonymous.fun ();
            // 不可调用的成员“<anonymous type: int age, string name, error fun>.fun”不能像方法一样使用。
            // 2。可空类型---------------------------------------------------
            // 默认值类型是不能为null的。声明时在类型后+?可以赋值null
            int? i = null;
            //判断是否有值
            if (i.HasValue)
            {
                Console.WriteLine (i);
                // Console.WriteLine (i.Value);
            }
            // 判断引用类型是否为空,并在不为空的情况下调用函数
            Person person = null;
            // if (person != null) person.Speak ();等效于下面的写法
            person?.Speak ();
            // 容器中用索引访问元素也有同样的用法   
            int[] nullIntArr = null;
            Console.WriteLine (nullIntArr?[0]); //不会报错
            // 委托调用同样
            Action action = null;
            action?.Invoke ();
            // 3。空合并操作符---------------------------------------------------
            // 语法:左边的值 ?? 右边的值
            // 作用:如果左边值为null则返回右边的值,否则返回左边的值
            Person p1 = person ?? p;
            p1.Speak ();
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值