C# nasıl enumerate edilir enum

Enumlar C# dilinde yaygın olarak kullanılmaktadır.

Ve C# adresinde enum adresini enumerate etmenin 4 yolu vardır.

  1. .Net 5 ve üzeri sürümlerde C# Enum.GetValues() adresini kullanma.
  2. Eski .Net sürümlerinde C# Enum.GetValues() adresini kullanma.
  3. C# Enum.GetNames() adlarını dizeler olarak enumerate etmek için enum kullanmak.
  4. Kullanma Linq

Bunu daha iyi anlamak için bir örnek üzerinden gidelim.

İlk olarak bir C# enum

public enum LogLevel
{
   ERROR, 
   WARN, 
   INFO, 
   DEBUG
}

Bu enum farklı günlük kaydı seviyelerini temsil eder.

Şimdi enumerate için farklı yollar göreceğiz C# enum.

##.Net 5 ve üzeri sürümlerde C# Enum.GetValues() Generic yöntemini kullanma

.Net, yani .Net 5 ve üstünün en son sürümünü kullanıyorsanız, Enum.GetValues yöntemi için genel sürümü enumerate etmek için kullanabilirsiniz C# enum.

void loopEnum()
{
   LogLevel[] logLevels = Enum.GetValues<LogLevel>();
   
   foreach (LogLevel logLevel in logLevels)
   {
        Console.WriteLine(logLevel.ToString());
   }
}

Enum.GetValues ‘un yeni genel sürümü enum değerleri dizisini döndürür.

Ve ayrıca for veya foreach ifadelerini listelemek için kullanabiliriz C# enum isimler.

Dizi aşağıdakileri içerdiğinden enum türünü ToString() yöntemini kullanarak dizeye dönüştürmemiz gerekir.

Eski .Net sürümlerinde C# Enum.GetValues() adresini kullanma.

.Net ‘un eski sürümlerinde Enum.GetValues() yöntemi için genel bir yöntem mevcut değildir.

typeof() enum adresini Enum.GetValues() yöntemine parametre olarak geçirmeniz gerekir.

Array logLevels = Enum.GetValues(typeof(LogLevel))

Ve System.Array türünde enum değerlerini döndürür ve ayrıca foreach deyimini kullanarak C# enum isimler.

void loopEnum()
{
   Array logLevels = Enum.GetValues(typeof(LogLevel))
   foreach (LogLevel logLevel in logLevels)
   {
        Console.WriteLine(logLevel.ToString());
   }
}

IEnumerable sonucunu istiyorsanız, Enum.GetValues() yöntemini daha fazla döküm yapabiliriz.

void loopEnum()
{
   var logLevels = Enum.GetValues(typeof(LogLevel)).Cast<LogLevel>();
   foreach (LogLevel logLevel in logLevels)
   {
        Console.WriteLine(logLevel.ToString());
   }
}

C# Enum.GetNames() adlarını dizeler olarak enumerate etmek için enum kullanma

C# Enum.GetValues() yöntemi enum türlerinden oluşan bir dizi döndürür.

Bu yüzden konsola yazdırmadan önce enum adlarını dizeye dönüştürdük.

C# Enum.GetNames() yöntemini kullanarak enum enum adlarını dizeler olarak erate edebiliriz, böylece bunları dizelere dönüştürmek gerekmez.

.Net 5 ve üstünü kullanıyorsanız, genel C# Enum.GetNames() işlevini kullanabilirsiniz.

void loopEnum()
{
   string[] logLevels = Enum.GetNames<LogLevel>();
   
   foreach (string logLevel in logLevels)
   {
        Console.WriteLine(logLevel);
   }
}

Eski sürümlerde typeof() enum parametresini geçmemiz gerekir.

void loopEnum()
{
   string[] logLevels = Enum.GetNames(typeof(LogLevel));
   foreach (string logLevel in logLevels)
   {
        Console.WriteLine(logLevel);
   }
}

Eğer isimleri string olarak enumerate etmek istiyorsanız C# Enum.GetNames() metodunu kullanabiliriz.

Kullanma Linq

Enum.GetValues() ve Enum.GetNames() metotları yardımıyla C# enum’u enumerate etmek için Linq forEach metodunu kullanabiliriz.

.Net 5 ve üzerinde aşağıdaki kod parçacığını kullanın.

//Using Enum.GetValues
Enum.GetValues<LogLevel>()
        .ToList()
        .ForEach(loglevel => Console.WriteLine(loglevel.ToString()));

//Using Enum.GetNames
Enum.GetNames<LogLevel>()
        .ToList()
        .ForEach(loglevel => Console.WriteLine(loglevel));        

Eski sürümlerde

//Using Enum.GetValues
Enum.GetValues(typeof(LogLevel))
    .Cast<LogLevel>().ToList()
    .ForEach(loglevel => Console.WriteLine(loglevel.ToString()));

//Using Enum.GetNames
Enum.GetNames(typeof(LogLevel))
    .ToList()
    .ForEach(loglevel => Console.WriteLine(loglevel));    

Özet

Bu eğitimde Enum.GetValues() ve Enum.GetNames() yöntemlerini kullanarak C#’ta enum adresini enumerate etmeyi öğrendik.

← C# özelliğine veya otomatik uygulanan özelliğine varsayılan değer nasıl ayarlanır Bu eğitimde, basit örnekler kullanarak özelliklerine varsayılan değer ayarlamanın 4 farklı yolunu öğreneceğiz özellikleri veya otomatik uygulanan özellikler, sınıflarımızda alanların, yani değişkenlerin yerine yaygın olarak kullanılmaktadır. Otomatik uygulanan özellikler 3.0'da tanıtılmıştır. Bu eğitimde, basit örnekler kullanarak özelliklerine varsayılan değer ayarlamanın 4 farklı yolunu öğreneceğiz. 1. 6'da Otomatik Özellik Başlatıcıları Kullanma 2. Yapıcıda varsayılan değer atama 3. Özellik Ayarlayıcısını Kullanma 4. Öznitelik &amp;&amp; Özellik Ayarlayıcısını Kullanma Varsayılan değeri adresindeki özelliğin başlangıç değeri olarak kabul edebiliriz. Yöntem 1 : 6'da Otomatik Özellik Başlatıcıları Kullanma 6'da otomatik olarak uygulanan özelliği bildirebilir ve varsayılan değeri tek bir satır bildiriminde ayarlayabiliriz. Sözdizimi şöyledir Varsayılan olarak string özellikleri değerine sahip olacaktır, 6 satır içi bildirimini kullanarak, varsayılan değeri boş string olarak ayarlıyoruz. Yöntem 2: Kurucuda varsayılan değer atama , 5 ve altındaki eski sürümlerde, sınıfın kurucusunda özelliklerinin varsayılan değerlerini ayarlamak iyi bir uygulamadır. Yöntem 3: Özellik Ayarlayıcısını Kullanma Otomatik uygulanan özelliklere varsayılan bir değer atamak için property setter'ı kullanabiliriz. yöntem 4: Öznitelik &amp;&amp; Özellik Ayarlayıcısını Kullanma Yukarıdaki örnekte özel bir değişken oluşturduk ve varsayılan bir değer atadık. Bunun yerine varsayılan değer atamak için niteliğini kullanabiliriz. Unutmayın ** niteliği yalnızca özellik ayarlayıcı ile çalışır.** Aşağıdaki kod, özelliğe varsayılan değer atamayacaktır. Varsayılan değer hala şeklindedir. niteliğini kullanıyorsanız, özellik ayarlayıcısını kullanmanız gerekir. Özet 6 kullanıyorsanız, özelliklerine varsayılan değeri ayarlamak için satır içi bildirimi kullanın, aksi takdirde varsayılan değeri yapıcıda ayarlayın. C#
C# Büyük/Küçük Harfe Duyarsız Dize Kontrolü İçerir →