Helper classes polluting your namespace? File-scoped types are only visible in their file.
Problem:
// HelperClass visible everywhere in project
public class ProductService
{
// ...
}
public class HelperClass // Only used by ProductService
{
// But visible to entire project!
}
Solution – File-Scoped Types:
// ProductService.cs
public class ProductService
{
private readonly HelperClass _helper = new();
// ...
}
file class HelperClass // Only visible in this file!
{
public void DoSomething() { }
}
// Other files can't see or use HelperClass
Use Cases:
– Private helper classes
– Implementation details
– Test-only classes in test files
– Record types for local use
Works with: class, struct, interface, enum, delegate
Keeps internals truly internal!
