Let’s go through using
in C# — the keyword that lets you import namespaces for easier access to types.
📌 1. What Is using
?
-
The
using
directive allows you to reference types from other namespaces without writing the full, fully-qualified name. -
Helps reduce clutter and make code more readable.
📌 2. Basic Syntax
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}
-
using System;
imports theSystem
namespace. -
Without it, you would need to write:
class Program
{
static void Main()
{
System.Console.WriteLine("Hello, World!");
}
}
📌 3. Importing Multiple Namespaces
- You can include multiple using directives at the top of a file:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> names = new List<string> { "Alice", "Bob" };
Console.WriteLine(string.Join(", ", names));
}
}
📌 4. Aliasing a Namespace or Type
- You can create shorter names or avoid conflicts using the
using alias = namespace_or_type;
syntax.
Example: Namespace alias
using Utils = MyApplication.Utilities;
class Program
{
static void Main()
{
Utils.Logger log = new Utils.Logger();
log.Log("Hello!");
}
}
Example: Type alias
using IntList = System.Collections.Generic.List<int>;
class Program
{
static void Main()
{
IntList numbers = new IntList { 1, 2, 3 };
Console.WriteLine(string.Join(", ", numbers));
}
}
📌 5. Global Using (C# 10)
global using
applies the import to all files in the project, so you don’t have to repeat it in every file.
// File: GlobalUsings.cs
global using System;
global using System.Collections.Generic;
// Now Console and List<T> are available in all files
📌 6. Key Points
Feature | Notes |
---|---|
using directive | Import a namespace for easier access to types |
Aliases | Avoid conflicts or shorten long names (using alias = ... ) |
global using | Available in C# 10+, applies project-wide |
Reduces fully-qualified names | Improves code readability |
📌 7. Analogy
-
namespace
= folder -
using
= shortcut that lets you access files (types) in that folder without typing the full path
✅ Summary:
-
using
imports namespaces or creates aliases. -
Simplifies code, improves readability, and avoids fully-qualified names.
-
global using
is a modern feature for project-wide imports.