C#‘da Enum’ları İnsan Okunur Değerlere Dönüştürmek

Enum’lar veya enumerasyonlar, C#‘da bir grup sabiti temsil eden özel bir “sınıf"tır. Önceden tanımlanmış bir değer setini tutabilen değişken türlerini tanımlamak için yaygın olarak kullanılırlar. Ancak, enum’larla çalışırken, kodlanmış isimlerini insan tarafından okunabilir string’lere dönüştürmek bir zorluk oluşturabilir. Bu yazı, bu sorunu ele almakta ve basit bir çözüm sunmaktadır.

Enum Okunabilirliğinin Zorluğu

Aşağıdaki gibi tanımlanmış bir enum’unuz olduğunu varsayalım:

public enum SampleEnum
{
    ThisIsValueA,
    ThisIsValueB,
    AnotherValue
}

Bu enum’u kullanarak, ThisIsValueA‘yı uygulamanızda kullanıcı dostu bir şekilde göstermek isterseniz, “This is Value A” olarak görünmesini istersiniz. Zorluk, bu camel case isimlendirme kurallarının temiz ve okunabilir bir metne otomatik olarak dönüştürülmesindedir.

Çözüm: Basit Bir Wordify Metodu

Bir enum değerini insan okunur bir string’e dönüştürmek için Wordify adlı bir yöntem kullanabiliriz. Bu yöntem PascalCase (enum isimlerinin genellikle tanımlandığı şekil) olarak geçirilen bir string alır ve gerektiğinde kelimeleri boşluklarla ayırır.

Aşağıda adım adım bir açıklama bulunmaktadır:

Adım 1: Wordify Metodunu Uygulama

Wordify metodunu kodunuza aşağıdaki gibi uygulayabilirsiniz:

using System.Text.RegularExpressions;

public static string Wordify(string pascalCaseString)
{            
    Regex regex = new Regex("(?<=[a-z])(?<x>[A-Z])|(?<y>.)(?<x>[A-Z])(?=[a-z])");
    return regex.Replace(pascalCaseString, " ${x}");
}

Açıklama:

  • Regex Deseni: Regex deseni, ya bir küçük harften önce ya da bir küçük harften sonra bulunan büyük harfleri bulur. Akronimlerin (büyük harf gruplarının) bütün olarak kalmasını sağlar.
  • Dönüş Değeri: Metod, bu eşleşmeleri bir boşluk ve ardından eşleşen büyük harf ile değiştirir ve böylece onları ayrı kelimelere ayırır.

Adım 2: Wordify Metodunu Kullanma

Yöntemin nasıl çalıştığını görmek için aşağıdaki kodu çalıştırabilirsiniz:

Console.WriteLine(Wordify(SampleEnum.ThisIsValueA.ToString()));

Çıktı:

Bu kod satırı şunları çıktılar:

"This Is Value A"

Wordify Kullanmanın Faydaları

  • Basitlik: Minimal kod gerektiren basit bir çözümdür.
  • Özniteliklerden Kaçınma: Bu yöntem, enum’lar için açıklama öznitelikleri tanımlamaktan daha basit ve daha az tekrarlıdır, bu da kodunuzu gereksiz yere karmaşıklaştırabilir.
  • Doğrudan Yaklaşım: Ek bir yük olmadan insan okunur enum isimlerine ulaşmanızı sağlar.

Sonuç

C#‘da enum’ları insan okunur değerlere dönüştürmek karmaşık olmak zorunda değildir. Wordify metodunu uygulayarak, herhangi bir PascalCase string’ini kolayca kullanıcı dostu bir formata birkaç kod satırında dönüştürebilir, uygulamalarınızın netliğini ve kullanılabilirliğini artırabilirsiniz. Bu yöntemi bir sonraki projenize dahil etmeyi deneyin ve enum değerlerini kullanıcılara göstermenin sürecini kolaylaştırın.