セージ の メモ書き

メモこそ命の恩人だ

C# - 最上位レベルステートメント

最上位レベルステートメント

docs.microsoft.com

  • C# 9.0 以降で使用できる。
  • main メソッドから外側の記述を省略できる。
  • 以下のフレームワークで、最上位レベルステートメントであることを確認。
  • main メソッド内の記述のため...
    • メソッドは定義できる。ローカル関数扱い。
    • プロパティ、読取専用フィールドは定義できない。

この記述が...

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

これだけでOK。

using System;

Console.WriteLine("Hello World!");

args 引数

  • 省略されているが使用できる。
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

var value = args[0];

await キーワード

  • 非同期メソッドを使用できる。
  • async は記述不要。
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

await Task.Delay(1000);

フレームワークごとのエントリーポイント

コンソール

using System;

Console.WriteLine("Hello World!");

ASP.NET Core MVC

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

WPF

/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
}

Form

internal static class Program
{
    /// <summary>
    ///  The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        // To customize application configuration such as set high DPI settings or default font,
        // see https://aka.ms/applicationconfiguration.
        ApplicationConfiguration.Initialize();
        Application.Run(new Form1());
    }
}



以上