Ключевое слово `using` в C# используется в трех основных контекстах:
##### Директивы Using
Директивы `using` используются в верхней части файлов C# для указания пространств имен, которые используются в файле. Это позволяет нам обращаться к классам и интерфейсам в этих пространствах имен без полного квалифицированного имени.
Например:
```csharp
using System;
using System.Collections.Generic;
```
После этого вы можете использовать просто `List<T>` вместо `System.Collections.Generic.List<T>` и т.д.
##### Оператор Using
Как я упоминал ранее, оператор `using` гарантирует вызов метода `Dispose` для объекта в конце его использования. Он создает блок кода, и в конце этого блока автоматически вызывает `Dispose` для объекта, определенного в выражении `using`.
```csharp
using (var reader = new StreamReader("file.txt"))
{
// Используем reader...
} // Здесь reader.Dispose() вызывается автоматически
```
##### Using Static
В C# 6.0 и более новых версиях, `using` можно использовать для импорта статических классов. Это позволяет нам обращаться к статическим членам класса без указания имени класса.
```csharp
using static System.Math;
// Теперь можно использовать статические методы напрямую
var squareRoot = Sqrt(4);
```
Все эти контексты используют ключевое слово `using`, но они имеют разные цели и используются в разных сценариях.