CSharp8.0 / C#8.0新语法【部分】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
 
namespace CSharp8._0
{
    public interface ICustom
    {
        public void Show();
 
        public void ShowInfo()
        {
            Console.WriteLine("showinfo");
        }
    }
 
    public class Custom : ICustom
    {
        public void Show()
        {
            Console.WriteLine("show");
        }
    }
}

  

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using System;
using System.Collections.Generic;
using System.Text;
 
namespace CSharp8._0
{
    enum WeekInfo
    {
        Monday = 1,
        Tuesday = 2,
        Wednesday = 3,
        Thursday = 4,
        Friday = 5,
        Saturday = 6,
        Sunday = 7
    }
    public class EmployeeInfo
    {
        public int Sex { get; set; }
        public string SexChinese { get; set; }
    }
    class SharpEightInfo
    {
        public static string WeekToStringOld(WeekInfo week)
        {
            switch (week)
            {
                case WeekInfo.Monday:
                    return "周一";
                case WeekInfo.Tuesday:
                    return "周二";
                case WeekInfo.Wednesday:
                    return "周三";
                case WeekInfo.Thursday:
                    return "周四";
                case WeekInfo.Friday:
                    return "周五";
                case WeekInfo.Saturday:
                    return "周六";
                case WeekInfo.Sunday:
                    return "周日";
                default:
                    throw new NotImplementedException("没有该枚举");
            }
        }
 
        public static string WeekToStringNew(WeekInfo week) => week switch
        {
            WeekInfo.Monday => "周一",
            WeekInfo.Tuesday => "周二",
            WeekInfo.Wednesday => "周三",
            WeekInfo.Thursday => "周四",
            WeekInfo.Friday => "周五",
            WeekInfo.Saturday => "周六",
            WeekInfo.Sunday => "周日",
            _ => throw new NotFiniteNumberException("不存在的枚举值")
        };
 
        public static bool SexToString(EmployeeInfo employee) => employee switch
        {
            { Sex: 0 } => employee.SexChinese == "男",
            { Sex: 1 } => employee.SexChinese == "女",
            { Sex: 2 } => employee.SexChinese == "未知",
            _ => throw new NotImplementedException("性别设定超出")
        };
 
        public static string TupleTest(int i, string x) => (i, x) switch
        {
            (1, "1") => $"{i}={x}",
            (1, "2") => $"{i}={x}",
            (1, "3") => $"{i}={x}",
            _ => "不存在"
        };
 
        public static int StaticLocationFun(int i)
        {
            int j = 1;
            return Add(i, j);
 
            static int Add(int i, int j) => i + j;
        }
    }
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
namespace CSharp8._0
{
    class Program
    {
        static void Main(string[] args)
        {
            //默认接口方法
            ICustom custom = new Custom();
            custom.Show();
            custom.ShowInfo();
 
            //switch属性模式
            SharpEightInfo.WeekToStringOld(WeekInfo.Monday);
 
            SharpEightInfo.WeekToStringNew(WeekInfo.Tuesday);
 
            EmployeeInfo employee = new EmployeeInfo()
            {
                Sex = 0,
                SexChinese = "未知"
            };
            bool bol = SharpEightInfo.SexToString(employee);
 
            string result = SharpEightInfo.TupleTest(1, "2");
 
            //静态本地函数
            SharpEightInfo.StaticLocationFun(1);
 
            //可控类型
            //int? i = null;
        }
    }
}

  

posted @   gygtech  Views(647)  Comments(2Edit  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示