简而言之,我想知道为什么以下代码编译并运行.
using System;
namespace ConsoleApplication
{
public class Program
{
public static void Main(string[] args) => Console.WriteLine("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
我对C#的有限知识告诉我,创建了一个名为Main的Delegate,由于某种原因,编译器/运行时接受此Delegate作为程序的有效起点.我的理解是否正确?是否有特定原因会使用这样的声明?
我碰到这个看罗斯林源代码,发现这里.
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.IO;
using Microsoft.CodeAnalysis.CommandLine;
using Roslyn.Utilities;
using System;
namespace Microsoft.CodeAnalysis.CSharp.CommandLine
{
public class Program
{
public static int Main(string[] args)
=> Main(args, Array.Empty<string>());
public static int Main(string[] args, string[] extraArgs)
=> DesktopBuildClient.Run(args, extraArgs, …Run Code Online (Sandbox Code Playgroud)