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 the System 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

FeatureNotes
using directiveImport a namespace for easier access to types
AliasesAvoid conflicts or shorten long names (using alias = ...)
global usingAvailable in C# 10+, applies project-wide
Reduces fully-qualified namesImproves 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.