CSharp9.0 / C#9.0新语法【部分】

/// <summary>
/// 基于 .Net 5
/// </summary>
namespace CSharp9._0
{
    public class FooInfo
    {
        public int FooId { get; init; }

        public string FooName { get; init; }
    }

    public record FoodInfo
    {
        public int FoodId { get; init; }

        public string FoodName { get; init; }
    }
}
namespace CSharp9._0
{
    class Program
    {
        static void Main(string[] args)
        {
            //记录 init
            FooInfo foo = new FooInfo()
            {
                FooId = 1,
                FooName = "张三"
            };
            //X foo.FooName = "";

            //record
            FoodInfo foodInfo = new FoodInfo()
            {
                FoodId = 2,
                FoodName = "李四"
            };
            //X foodInfo.FoodName = "王五"; 属性是set时可以使用

            //with 配套record使用
            //X var foo1 = foo with {  }

            //with 表达式指示编译器创建记录副本
            var food = foodInfo with { FoodId = 2 };

            //简化
            FooInfo foo1 = new();//语法糖

            //为null判断
            string name = string.Empty;
            if (name is not null)
            {
                name = "王五";
            }
        }
    }
}

//顶级语句,注释上面
//Console.WriteLine("12");

  

原文地址:https://www.cnblogs.com/gygtech/p/14327697.html