关于C#的主要抱怨之一是它是一种非常冗长的语言。要引导一个简单的Hello World,您需要12行代码!!!
using System; |
随着Python和F#等语法更轻便的新语言的兴起,Microsoft知道必须做出一些更改才能将C#保留在游戏中。考虑到这一点,C#9.0正在将第一步迈向该Main方法(即顶级程序)的更简单语法。
现在,您可以用两行编写相同的Hello World!这还差不多。
using System; |
但是在现实世界中可行吗?如果我的程序通过args参数接受参数会怎样?幸运的是,args始终在program.cs文件范围内的魔术kinda-global变量支持它。您不需要声明它;您可以直接使用它,就像它来自一样Main(string[] args)。
异步
从C#7.1开始,还可以使您的Main方法异步并返回Task或Task<T>。
static async Task<int> Main() |
在C#9.0中:
using System; |
将它扔进await去,它就可以直接使用,没有特殊说明或奇怪的语法关键字。
返回
如果我尝试破坏新的自动魔术Main功能,最后想到的是返回码。一些程序使用返回码来向调用者提示执行结果。通常,0用于成功,1表示错误。
using System; |
所有结合在一起:
var s = new AsyncService(); |
这是一个试图一次组合所有内容的示例。我着迷于此功能的运行情况。我一直是F#简约语法的忠实拥护者,并且很高兴看到一些概念转向C#。
可以在我的github仓库中找到所有代码示例