Start Debugging
2023-03-18 Aktualisiert 2023-11-05 csharp Edit on GitHub

C# 11 - file-Zugriffsmodifizierer und dateibezogene Typen

Erfahren Sie, wie der file-Modifizierer in C# 11 den Geltungsbereich eines Typs auf die Datei beschränkt, in der er deklariert wird, und so Namenskollisionen mit Source Generators vermeidet.

Der file-Modifizierer beschränkt Geltungsbereich und Sichtbarkeit eines Typs auf die Datei, in der er deklariert ist. Das ist besonders nützlich, wenn Sie Namenskollisionen zwischen Typen vermeiden möchten, etwa bei Typen, die mit Source Generators erzeugt werden.

Ein kurzes Beispiel:

file class MyLocalType { }

Bei den Einschränkungen gilt Folgendes:

Andererseits:

Eine dateibezogene Schnittstelle implizit implementieren

Eine public-Klasse kann eine dateibezogene Schnittstelle implementieren, solange beide in derselben Datei definiert sind. Im folgenden Beispiel sehen Sie die dateibezogene Schnittstelle ICalculator, implementiert von einer public-Klasse 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.

< Zurück