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");
}
}
}
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;
}
}
}
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;
}
}
}