Start Debugging
2023-03-18 更新日 2023-11-05 csharp Edit on GitHub

C# 11 - file アクセス修飾子とファイルスコープの型

C# 11 の file 修飾子が、型のスコープを宣言されたファイルに限定し、ソースジェネレーターとの名前衝突を回避するのに役立つ仕組みを学びます。

file 修飾子は、型のスコープと可視性を宣言されたファイル内に限定します。これは、ソースジェネレーターによって生成される型のように、型同士の名前衝突を避けたい状況でとくに役立ちます。

簡単な例です。

file class MyLocalType { }

制約に関しては次のとおりです。

一方で、次のことは可能です。

ファイルスコープのインターフェースを暗黙的に実装する

public クラスは、同じファイル内で定義されている限り、ファイルスコープのインターフェースを実装できます。次の例には、ファイルスコープのインターフェース ICalculator があり、public クラス Calculator によって実装されています。

file interface ICalculator
{
    int Sum(int x, int y);
}

public class Calculator : ICalculator
{
    public int Sum(int x, int y) => x + y;
}

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< 戻る