C# 10 Yenilikleri: Global Using ile Daha Temiz Kodlar

Uzun bir aradan sonra herkese merhaba. Bugün C# 10 yeniliklerinden Global Using üzerinde durmaya çalışacağım. Biz yazılım geliştiriciler her yeni sınıf oluşturduğumuzda, dosyanın en tepesinde o tanıdık ritüeli gerçekleştirmek için using ifadelerini ekleriz. Özellikle System, System.Linq veya projemizin kendi temel katmanları gibi sık kullanılan kütüphaneleri her dosyaya tek tek eklemek zamanla yorucu olabiliyor ve bu bir süre sonra da kod kirliliği yaratabiliyor.
C# 10 ile hayatımıza giren Global Using özelliği tam olarak bu sorunu çözmeyi hedefliyor.
Global Using Nedir?
Global Using, bir using bildiriminin sadece bulunduğu dosyada değil, tüm proje genelinde geçerli olmasını sağlayan bir özellik. Yani bir namespace’i bir kez “global” olarak tanımladığınızda, projenizdeki diğer yüzlerce dosyada tekrar tekrar o namespace’i çağırmanıza gerek kalmıyor.
Neden Kullanmalıyız?
- Kod Temizliği: Dosyaların başındaki 10-15 satırlık using kalabalığını ortadan kaldırır. Böylece ekranın sayfanın üst bölümündeki o gereksiz kod bloğunu görmemize gerek kalmaz.
- Verimlilik: Sık kullanılan kütüphaneleri her seferinde eklemekle uğraşmazsınız.
- Odaklanma: Dosyayı açtığınızda doğrudan koda odaklanırsınız.
Nasıl Kullanılır?
Kullanımı oldukça basittir. Standart using anahtar kelimesinin önüne global eklemek yeterli.
1. Geleneksel Yöntem
using System;
using System.Collections.Generic;
using System.Linq;
using BenimProjem.Helpers;
using BenimProjem.Models;
namespace BenimProjem
{
public class User
{
public void ToplamaYap()
{
Console.WriteLine("Toplama işlemi yapılıyor...");
}
}
}2. Global Using Yöntemi
Global using ifadelerini herhangi bir .cs dosyasında tanımlayabilirsiniz. Ancak en iyi uygulama, bunları projenin kök dizininde GlobalUsings.cs adında tek bir dosyada toplamaktır.
Adım 1: GlobalUsings.cs dosyasını oluşturun:
// GlobalUsings.cs
global using System;
global using System.Collections.Generic;
global using System.Linq;
global using BenimProjem.Helpers;
global using BenimProjem.Models;Adım 2: Diğer dosyalarınızı temizleyin:
Artık üstteki kod bloğu aşağıdaki şekilde daha sade olabilir:
// Yukarıda hiç using ifadesi yok! Çünkü hepsi global olarak tanımlandı.
namespace BenimProjem
{
public class User
{
public void ToplamaYap()
{
Console.WriteLine("Toplama işlemi yapılıyor...");
}
}
}Implicit Usings (Örtülü Kullanımlar)
.NET 6 ve sonrası ile yeni bir proje oluşturduğunuzda, GlobalUsings.cs oluşturmasanız bile bazı kütüphanelerin (örneğin System veya System.Linq) otomatik olarak geldiğini fark edebilirsiniz. Bunun nedeni .csproj dosyasındaki şu ayarda gizli.
<PropertyGroup>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>Bu özellik açık olduğunda, proje tipine göre (Console, Web API, vb.) en temel kütüphaneler arka planda sizin için otomatik olarak global hale getirilir. Bu sayede “Hello World” yazarken bile Using System; yazmanıza gerek kalmaz.
Static Global Using
Sadece namespace’leri değil, statik sınıfları da global hale getirebilirsiniz. Örneğin Math kütüphanesini çok sık kullanıyorsanız:
// GlobalUsings.cs içinde
global using static System.Math;Artık projenin herhangi bir yerinde Math.PI yerine direkt PI yazabilirsiniz:
var alan = PI * r * r; // Math sınıfını belirtmeye gerek kalmadı.Özetle Global Using, C# geliştiricilerinin kod yazma deneyimini iyileştiren, “bir kere yaz, her yerde kullan” mantığıyla çalışan harika bir özellik. Projelerinizi daha sade ve yönetilebilir tutmak için bu özelliği kullanmanızı tavsiye ederim.