创建一个控制台项目,.net5或.net6(Preview),在Program.cs中写如下代码,F5,能顺利跑起来,没有Program类,没有Main函数。

这是C#9带来的顶级语句的功能。



System.Console.WriteLine("你好,C#");

其实这里的Program类和Main还是存在的,只是一种略写法,可以用如下代码看出来:




System.Console.WriteLine($"Method Name:{System.Reflection.MethodBase.GetCurrentMethod().Name}");
System.Console.WriteLine($"Class Name:{System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name}");
System.Console.WriteLine($"Namespace Name:{System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Namespace}");
System.Console.WriteLine($"Assembly Name:{System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Assembly.FullName}");
System.Console.WriteLine($"Module Name:{System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Module.Name}");

顶级语句_.net

与此同时,对args也是支持,直接访问就ok了



System.Console.WriteLine($"args长度{args.Length}");

同时也支持异步



await System.Threading.Tasks.Task.Delay(1000);

调用其他方法或类




System.Console.WriteLine(GetName());
System.Console.WriteLine(Test1.GetName());
System.Console.WriteLine(new Test2().GetName());
//静态方法
static string GetName()
{
return "桂素伟";
}
//静态类
class Test1
{
public static string GetName()
{
return "桂素伟";
}
}
//实例化类
class Test2
{
public string GetName()
{
return "桂素伟";
}
}


这种简略写法使用场景有限,但Faas是个场景,直接上来写功能,没有那么多条条框框。