大家好,欢迎来到IT知识分享网。
单纯从技术上来讲,C#/.NET是当今世界上最强劲的编程语言和框架。
它有着比Python更快的开发效率,媲美C++等本机语言的底层执行速度。
下面来看一个演示
C#9.0新增特性:顶级程序语句(Top-Level Programs)
这个特性配合C#的强大语法,使得我们可以真正以一行代码实现一个功能完整的程序。
真正的一行代码(一个分号!) 连main函数都省了!
可以看到,源代码没有引入任何外部包,外部函数,纯标准库实现。
C#本身并非链式编程特性的语言,但我们可以借助它的强大语法能力,完成这个挑战。
下面请看注解:
// args是 main函数程序入口主参, C#9.0使用语法糖隐蔽了main函数,但此参数还在,程序的核心是利用此参数赋值语句的返回值副作用来避免开新行
// args[0] “12345” 为主循环表,表示有5次猜数字机会
// args[1] new Random() 随机产生一个1-100的数字
// args[2] 用来存储用户输入的数字
// args[3] 用来存储判断结果:如 “答对了”,“太大”,“太小”
//arg是args[0]的当前循环索引
//x是被Invoke调用端传进来的 目标随机数,用来和Console.ReadLine接收的用户输入最比对,在打印结果的同时,
//把“太大” “太小” “答对了” 这样的字符串结果存入到args[3]里面
//结果长度大于3,就是那句“恭喜答对了“ 退出程序。 否则继续下一轮猜数字
//这里使用DynamicInvoke只是为了解决void访问类型不能再接表达式的问题。
//as int? 恒为否,将随机数字字符串转换成数字x传入上面的Action<int?>
//这里DynamicInvoke ??也只为了链接语句, 执行到这里说明次数用完了,否则在上面就会主动退出程序。
源码:
https://github.com/nsnail/GuessNumber.git
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6776.html