使用C#中的out关键字,用世界杯演绎

编程入门 行业动态 更新时间:2024-10-15 10:18:01

使用C#中的out关键字,用<a href=https://www.elefans.com/category/jswz/34/1758306.html style=世界杯演绎"/>

使用C#中的out关键字,用世界杯演绎

今年的世界杯好看至极,充满着故事性、戏剧性。无论你平常踢不踢球,也不管你是否懂球,你总能从中获得些许的情感释放。世界杯似乎超越了足球本身,成为世界各地人们的"情感总和",一场场比赛牵动着无数人的心,赛场内比赛的跌宕起伏,赛场外球迷的喜怒哀乐。

 

而我们自己的国家队,似乎离世界杯的舞台渐行渐远。也就在世界杯期间,在场上人数占优的情况下,居然输给了默默无名的马里队,让人唏嘘不已。于是慨叹:中国足球的天啥时亮啊?几个球友一致认为:我们可以选择不看中国队的比赛!说虽然是这么说,但总有一些人在内心默默期待着中国足球好起来的那天......

 

当操场上、公园里、大街上、田地里到处是踢球的孩子,当我们的周围有足够多可以踢球的场地,当为人父的我们带着自己的孩子走上球场,当我们有大批专业的青少年教练来教孩子踢球,当学校、俱乐部、中国足协重视青少年培养并愿意投入,当处在转型期、被时代裹挟着向前的我们认识到物质和金钱不是全部,足球能带来内心的快乐……到那时……跑题了,对了,本篇要体验的是使用C#的out关键字,让我想到这和足球比赛评选"本场最佳球员"颇为相似,就顺着这个思路来。


比赛由场上球员来完成,还需要一个Bool类型的属性IsBestPlayer,用来设置是否是最佳球员:

public class Player{public int Id { get; set; }public string Name { get; set; }public string Position { get; set; } public bool IsBestPlayer { get; set; }}

球员归属球队,类型为int的ScoreCount属性用来记录进球数,用它来判断哪个球队赢得比赛:

public class Team{public Team(){Players = new List<Player>();}public int Id { get; set; }public string Name { get; set; }public int ScoreCount { get; set; }public List<Player>  Players { get; set; }}

我们需要一个方法,不仅可以判断哪个Team赢得比赛,还需要评选出比赛的最佳球员,把这个最佳球员作为输出参数:

static void WhoWinWorldCup(Team a, Team b, out string bestPlayer) {if (a.ScoreCount > b.ScoreCount){Console.WriteLine("恭喜{0}赢得了本届世界杯~~",a.Name);}else{Console.WriteLine("恭喜{0}赢得了本届世界杯~~", b.Name);}bestPlayer = LookForBestPlayer(a, b);}

LookForBestPlayer()方法用来获取2个Team中的最佳球员:

static string LookForBestPlayer(Team a, Team b) {string result = string.Empty;//把Team b的球员合并到Team a中去
            a.Players.AddRange(b.Players);foreach (var player in a.Players){if (player.IsBestPlayer == false){continue;}else{result = player.Name;break;}}return result;}

最后,在客户端,由央视足球解说员贺炜来为我们评说本场比赛。 贺炜的解说准确、专业,甚至带上几份哲学味道:

static void Main(string[] args){Console.WriteLine("央视足球解说员贺炜:欢迎大家来到本届世界杯的决赛现场~~");Console.WriteLine("央视足球解说员贺炜:决赛的2支队伍是:");Team brazil = new Team(){Id = 1,Name = "巴西队",Players = new List<Player>(){new Player(){Id = 1, Name = "内马尔", Position = "前锋"},new Player(){Id = 2, Name = "阿尔维斯", Position = "后卫"}}};Team germany = new Team(){Id = 2, Name = "德国队",Players = new List<Player>(){new Player(){Id = 3, Name = "齐勒", Position = "前锋"},new Player(){Id = 4, Name = "拉姆", Position = "后卫"}}};Console.WriteLine("来自南美的{0}主场迎战来自欧洲的劲旅{1}", brazil.Name, germany.Name);Console.WriteLine("在比赛的89分钟,德国队前锋齐勒禁区外抽射死角,锁定胜局~~");germany.Players[0].IsBestPlayer = true;germany.ScoreCount = 1;brazil.ScoreCount = 0;string best = string.Empty;WhoWinWorldCup(brazil, germany,out best);Console.WriteLine("本场比赛的最佳球员是:{0}", best);Console.WriteLine();Console.WriteLine("央视足球解说员贺炜:这是牵动人心的90分钟。在这场比赛之后,总有一支球迷热爱的球队要离开,而这场比赛本身,将成为我们记忆中的永恒财富。等我们老去的时候,在壁炉旁抱着自己的孙子,一定会跟他们讲起2014年,讲起今晚的巴德大战。");Console.ReadKey();}

运行:

 

out和ref:
● 相同的地方在于:传递的引用
● 不同之处在于:ref在使用之前需要赋上初值,out可以赋初值也可以不赋

转载于:.html

更多推荐

使用C#中的out关键字,用世界杯演绎

本文发布于:2024-02-08 20:36:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1674782.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:世界杯   关键字

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!