当前位置: 首页> 文旅> 旅游 > 江苏扬州疫情最新消息今天封城了_凡科小程序教程_推广计划方案模板_seo是什么品牌

江苏扬州疫情最新消息今天封城了_凡科小程序教程_推广计划方案模板_seo是什么品牌

时间:2025/9/3 11:35:57来源:https://blog.csdn.net/caifox/article/details/144458613 浏览次数:0次
江苏扬州疫情最新消息今天封城了_凡科小程序教程_推广计划方案模板_seo是什么品牌

嘿,探险家们!欢迎再次踏上C#的奇妙旅程。今天,我们要聊的是一个非常实用又有点懒散的旅行伴侣——元组(Tuple)。想象一下,你正准备来一场说走就走的旅行,但是不想带太多行李,只想简单打包几件必需品。元组呢,就像是你的那个轻便背包,能让你轻松打包多件物品,而且不用担心超重!

什么是元组?

元组,简单来说,就是一个可以装多个不同类型东西的小包裹。它不像类那样需要定义一堆属性和方法,也不像数组那样只能装同一种类型的东西。元组就像是快餐店里的套餐,你可以自由选择搭配汉堡、薯条、可乐,甚至是甜点,而且它们各自独立,互不干扰。

创建元组的魔法咒语

在C#中,创建元组超级简单,你只需要用一对圆括号(),然后把你想打包的东西用逗号,隔开就行了。比如,你想打包一个整数、一个字符串和一个布尔值,可以这样做:

var myTuple = (1, "Hello, World!", true);

 看,是不是很像你在快餐店点餐时说的:“我要一个汉堡,一份薯条,还有一杯可乐。”?

给元组里的宝贝起名字

虽然元组默认是用Item1Item2这样的名字来访问里面的值,但你也可以给它们起个更亲切的名字。这样,当你从元组里拿东西时,就知道拿的是什么了。

var myNamedTuple = (age: 30, message: "Hello, Named World!", isHappy: true);Console.WriteLine(myNamedTuple.age);        // 输出: 30
Console.WriteLine(myNamedTuple.message);    // 输出: Hello, Named World!
Console.WriteLine(myNamedTuple.isHappy);    // 输出: True

 是不是感觉像是在给你的旅行物品贴上标签,找起来更方便了呢?

元组的变形记

元组还有个神奇的地方,就是它可以“变形”。什么意思呢?就是你可以根据需要,把元组拆分成更小的部分,或者把几个元组合并成一个更大的元组。

比如,你有一个包含三个元素的元组,但你现在只想拿前两个,可以这样做:

var myTuple = (1, "Hello", true);
var (first, second, third) = myTuple;Console.WriteLine(first);  // 输出: 1
Console.WriteLine(second); // 输出: Hello

 这就像是你从背包里只拿出了需要的几件东西,剩下的留在了包里。

元组的实际应用

元组在实际编程中非常有用,尤其是当你需要快速返回一个包含多个值的结果时。比如,一个方法需要返回成功或失败的状态码,同时还要返回一些额外的信息,这时候元组就派上用场了。

(int statusCode, string message) GetStatus()
{return (200, "Operation Successful!");
}var result = GetStatus();
Console.WriteLine($"Status Code: {result.statusCode}, Message: {result.message}");

看,是不是既简洁又实用?

对于元组来说,我们还要掌握两项绝技——丢弃(Discard)变身(Switch)

丢弃的艺术:我不要了!

有时候,你从背包里拿出一件东西,但发现你其实并不需要它。这时候,丢弃(Discard)就显得尤为重要了。在C#中,你可以用一个下划线_来表示你不需要的东西。

比如,你只关心背包里的第一个和第三个物品,第二个可以不要:

var myTuple = (1, "I don't need this", true);
var (first, _, third) = myTuple;Console.WriteLine(first);  // 输出: 1
Console.WriteLine(third);  // 输出: True

看,那个字符串就像被风带走了一样,消失了!这就是丢弃的艺术,让你的代码更加简洁、清晰。

变身大法:元组的终极形态!

接下来,我们要学习的是元组的变身大法——switch表达式与模式匹配。这听起来很神秘,但其实就像是你背包里的物品突然变成了你更需要的东西。

假设你有一个元组,表示一个学生的信息:

var student = (name: "Alice", grade: 90);

现在,你想根据学生的成绩给她一个评价。这时候,你可以使用switch表达式与模式匹配:

string GetGradeEvaluation((string name, int grade) student)
{return student.grade switch{>= 90 => "Excellent!",>= 75 => "Good job!",>= 60 => "Needs improvement.",_ => "Failing."};
}Console.WriteLine(GetGradeEvaluation(student)); // 输出: Excellent!

 看,元组里的grade就像变魔术一样,直接变成了对应的评价!这就是元组的变身大法,让你的代码更加灵活、强大。

 我们具体来分析一下这一段代码:

这里先创建了一个 ValueTuple<string, int> 类型的变量 student,其中 name"Alice"grade90。由于使用了命名元素,你可以通过名字访问这些值,比如 student.namestudent.grade

定义 GetGradeEvaluation 方法,返回值类型为 string

  • 方法签名GetGradeEvaluation 方法接收一个参数 student,它是一个包含 namegrade 的元组。
  • switch 表达式:C# 8.0 引入了 switch 表达式,它比传统的 switch 语句更加简洁和功能强大。在这个例子中,switch 表达式用于根据 student.grade 的值返回不同的字符串。
  • 模式匹配:每个 case 使用了关系模式来比较 student.grade 的值。例如,>= 90 是一个关系模式,它会检查 student.grade 是否大于或等于 90。
  1. 默认情况:如果 student.grade 不符合任何前面的条件,则会匹配 _,这相当于默认情况,表示所有其他情况。
    Console.WriteLine(GetGradeEvaluation(student)); // 输出: Excellent!

    这里将 student 元组传递给 GetGradeEvaluation 方法。

  • 因为 student.grade 是 90,所以 switch 表达式的第一个条件 (>= 90) 成立,因此返回 "Excellent!"
  • Console.WriteLine 打印出这个返回值,即 "Excellent!"

注意事项

  • 代码中的 switch 表达式要求 C# 7.0 或更高版本,因为它使用了关系模式。如果你使用的是较低版本的 C#,你可能需要使用 if-else 或传统的 switch 语句来实现同样的逻辑。
结语:元组的奇幻之旅

探险家们,今天的元组之旅就到这里啦。我们不仅学会了如何打包、命名,还掌握了丢弃的艺术和变身的大法。元组这个神奇的背包,不仅能让你的代码更加简洁、清晰,还能让你的编程之旅更加有趣、充满惊喜。记住,下次当你需要携带多件不同类型的“行李”时,别忘了元组这个好朋友哦!我们下一节再见,继续我们的C#探险之旅!

关键字:江苏扬州疫情最新消息今天封城了_凡科小程序教程_推广计划方案模板_seo是什么品牌

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: