파일(C# 참조)
C# 11부터 file
상황별 키워드는 형식 한정자입니다.
file
한정자는 최상위 형식의 범위 및 표시 영역을 선언된 파일로 제한합니다. file
한정자는 일반적으로 소스 생성기에서 작성한 형식에 적용됩니다. 파일 로컬 형식은 소스 생성기에 생성된 형식 간의 이름 충돌을 방지하는 편리한 방법을 제공합니다. file
한정자는 다음 예제와 같이 파일 로컬 형식을 선언합니다.
file class HiddenWidget
{
// implementation
}
파일 로컬 형식 내에 중첩된 모든 형식은 선언된 파일 내에서만 표시됩니다. 어셈블리의 다른 형식은 파일 로컬 형식과 동일한 이름을 사용할 수 있습니다. 파일 로컬 형식은 선언된 파일에만 표시되므로 이러한 형식은 명명 충돌을 초래하지 않습니다.
파일 로컬 형식은 file
범위보다 표시 영역이 큰 멤버의 반환 형식 또는 매개 변수 형식일 수 없습니다. 파일 로컬 형식은 file
범위보다 표시 영역이 큰 형식의 필드 멤버일 수 없습니다. 그러나 표시 유형이 큰 형식은 파일 로컬 인터페이스 형식을 암시적으로 구현할 수 있습니다. 또한 형식은 파일 로컬 인터페이스를 명시적으로 구현할 수 있지만 명시적 구현은 file
범위 내에서만 사용할 수 있습니다.
예
다음 예제에서는 파일 로컬 형식을 사용하여 작업자 메서드를 제공하는 공용 형식을 보여 줍니다. 또한 public 형식은 파일 로컬 인터페이스를 암시적으로 구현합니다.
// 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();
}
}
다른 원본 파일에서 파일 로컬 형식과 이름이 같은 형식을 선언할 수 있습니다. 파일 로컬 형식은 표시되지 않습니다.
// In File2.cs:
// Doesn't conflict with HiddenWidget
// declared in File1.cs
public class HiddenWidget
{
public void RunTask()
{
// omitted
}
}
C# 언어 사양
자세한 내용은 C# 언어 사양의 선언된 접근성 및 C# 11 - 파일 로컬 형식 기능 사양을 참조하세요.
참고 항목
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기