本文会讲解一下日常经常用到的C#6到C#12的新语法!!!
一、元组
/// <summary>
/// 元组
/// 返回一个匿名对象
/// </summary>
public static (string fltNo, int Id, string Acft) aaa()
{
return ("SY1295", 10, "A320");
}
//使用元组方法,通过var接收一个匿名对象,去应用他的属性
public static void aaa2()
{
var s = aaa();
Console.WriteLine(s.fltNo);
Console.WriteLine(s.Id);
Console.WriteLine(s.Acft);
}
二、局步函数
/// <summary>
/// 局步函数
/// </summary>
public static void bbb()
{
var s1 = Add(10);
int Add(int Id)
{
return 10 + Id;
}
var s2 = Add(110);
//最后的输出结果就是 s1=20, s2=120
}
三、switch
1、when条件判断(并且的关系)
/// <summary>
/// switch 新语法
/// when 添加条件语句
/// </summary>
public static void ccc()
{
string text = "小王";
int k = 10;
switch (text)
{
case "小王" when k > 0:
break;
case "小李" when k == 10:
break;
case "小张":
break;
default:
break;
}
}
2、返回值使用
/// <summary>
///
/// </summary>
public static void ccc2()
{
int k = 200;
string message = k switch
{
200 => "k=200",
700 => "k=700",
_ => "都不满足"
};
//message 会输出 k=200
}
四、模式匹配
///判断一下参数是不是用户,
///如果是用户则实例化成p并输出语句,
///不是用户则返回else
public void ProcessPerson(object person)
{
if (person is Person p)
{
Console.WriteLine($"Name: {p.Name}, Age: {p.Age}");
}
else
{
Console.WriteLine("Not a person object.");
}
}
五、索引和范围
public void aaa(object person)
{
string[] words = { "apple", "banana", "cherry", "date" };
//从第一位开始截取,一直截取到第二位
string secondWord = words[1..2]; // 返回 "banana" 和 "cherry" 的子数组
Console.WriteLine(secondWord); // 输出 "banana, cherry"
}
六、判空赋值
public static void ccc()
{
//第一种
//判断学生是否为null,如果为null 赋值null,不为null 赋值学生的Name字段
Student student = null;
string name = student?.Name;
//第一种(这是一种优化版的三目运算)
//判断potentialNullName是否为有内容,有则把自己赋值给fullName,没有则返回"Unknown"
string potentialNullName = null;
string fullName = potentialNullName ?? "Unknown";
}
七、数字下划线
///使用下划线区分数字位数,提高可读性
public static void ccc()
{
//这是代表 num为一亿
int num = 10000_000_0;
}
八、异常信息筛选
///在catc后面 使用when 添加条件筛选信息
public static void ccc()
{
try
{
// 一些可能抛出异常的代码
}
catch (Exception e) when (e.Message.Contains("特定异常信息"))
{
// 仅当异常信息中包含"特定异常信息"时才进入catch块 Console.WriteLine("捕获到异常: " + e.Message);
}
}
九、nameof表达式
///获取参数数据类型
public static void ccc()
{
string name = "小王";
var ss = nameof(name);
// ss 最后会输出 string
}
以上就是新了解到的c#的新语法,大家还有更多的语法欢迎到评论区讨论!!!