fájl (C#-referencia)
A C# 11-től kezdődően a file
környezetfüggő kulcsszó egy típusmódosító.
A file
módosító a legfelső szintű típus hatókörét és láthatóságát arra a fájlra korlátozza, amelyben deklarálva van. A file
módosító általában a forrásgenerátor által írt típusokra lesz alkalmazva. A fájlalapú típusok kényelmesen biztosítják a forrásgenerátorok számára a névütközések elkerülését a generált típusok között. A file
módosító fájl helyi típust deklarál az alábbi példához hasonlóan:
file class HiddenWidget
{
// implementation
}
A fájl helyi típusán belül beágyazott típusok szintén csak abban a fájlban láthatók, amelyben deklarálva van. A szerelvény más típusai ugyanazt a nevet használhatják, mint egy fájl helyi típusa. Mivel a fájl helyi típusa csak abban a fájlban látható, amelyben deklarálva van, ezek a típusok nem okoznak elnevezési ütközést.
A fájl helyi típusa nem lehet olyan tag visszatérési típusa vagy paramétertípusa, amely láthatóbb, mint file
a hatókör. A fájl helyi típusa nem lehet olyan típusú mezőtag, amelynek nagyobb a láthatósága, mint file
a hatókörnek. A láthatóbb típus azonban implicit módon implementálhat egy fájl-helyi felülettípust. A típus kifejezetten implementálhat egy fájl-helyi felületet is, de explicit implementációk csak a file
hatókörön belül használhatók.
Példa
Az alábbi példa egy olyan nyilvános típust mutat be, amely fájl-helyi típust használ a feldolgozói módszer biztosításához. Emellett a nyilvános típus implicit módon implementál egy fájl-helyi felületet:
// In File1.cs:
file interface IWidget
{
int ProvideAnswer();
}
file class HiddenWidget
{
public int Work() => 42;
}
public class Widget : IWidget
{
public int ProvideAnswer()
{
var worker = new HiddenWidget();
return worker.Work();
}
}
Egy másik forrásfájlban deklarálhat olyan típusokat, amelyek neve megegyezik a fájl helyi típusaival. A fájl helyi típusai nem láthatók:
// In File2.cs:
// Doesn't conflict with HiddenWidget
// declared in File1.cs
public class HiddenWidget
{
public void RunTask()
{
// omitted
}
}
C# nyelvspecifikáció
További információ: Deklarált akadálymentesség a C# nyelvi specifikációjában és a C# 11 – Fájl helyi típusok funkcióspecifikációjában.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: