public class SharpNineNewInfo { public static void Show() { //记录 { //init对于类内部属性只能在初始化时赋值 UserInfo user1 = new UserInfo() { Id = 1, UserName = "1" }; //record RecordUserInfo1 user2 = new RecordUserInfo1() { Id = 1, UserName = "2" }; RecordUserInfo2 user3 = new(1,"3"); //with复制对象修改值 var user4 = user3 with { UserName = "4" }; } //简化对象声明 { UserInfo userInfo = new(); } //静态修饰 { Func<int> func = static () => 1; } //模式匹配 { var a = ‘A‘; Console.WriteLine(a.IsLetterNew()); } //为空判断 { string name = ""; if (name is null) { Console.WriteLine("null"); } } //协变返回值,可以直接返回继承子类对象 { UserAction1 action = new(); action.GetUserInfo(); } //原生大小数据类型,根据计算机类型获取 { nint a = 1; nuint b = 2; } //Lambda 参数弃元 { Func<int, int, int> func = (_, _) => 0; } } } public abstract class UserAction { public abstract UserInfo GetUserInfo(); } public class UserAction1 : UserAction { /// <summary> /// 可以直接返回子类对象 /// </summary> /// <returns></returns> public override UserInfo2 GetUserInfo() { return new UserInfo2(); } } public class UserInfo2: UserInfo { } public static class SharpNineInfo { public static bool IsLetterNew(this char b) => b is >= ‘a‘ and <= ‘z‘ or >= ‘A‘ and <= ‘Z‘; } record RecordUserInfo2(int Id,string UserName); public record RecordUserInfo1 { public int Id { get;init; } public string UserName { get; init; } } public class UserInfo { public int Id { get; init; } public string UserName { get; init; } }
原文:https://www.cnblogs.com/lemonzwt/p/14617903.html