0Pricing
C# Academy · Ders

Numaralandırmalar ve [Flags]

Açık değerler ve temel türlerle numaralandırmalar tanımlayın, güvenle dönüştürüp ayrıştırın ve birleştirilebilir seçenekleri [Flags] ile modelleyin.

Numaralandırmalar ve [Flags], CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 3 dersten oluşur.

Numaralandırmalara genel bakış

Amaç: Adlandırılmış sabitler için numaralandırmaları, birleştirilebilir seçenekler için de [Flags] kullanın.

  • Adlar sayılara karşılık gelir
  • Temel tür (varsayılan olarak int)
  • Dönüştürün, ayrıştırın ve doğrulayın
  • [Flags] ile bit düzeyinde birleştirin

Temel numaralandırma

Numaralandırmalar adlandırılmış sabitlerdir. Adı yazdırabilir veya temel sayıya dönüştürebilirsiniz.

using System;

public enum OrderStatus
{
  Pending = 0,
  Processing = 1,
  Shipped = 2,
  Delivered = 3,
  Cancelled = 4
}

public class Program
{
  public static void Main(string[] args)
  {
    OrderStatus s = OrderStatus.Processing;
    Console.WriteLine("Status = " + s);
    Console.WriteLine("Numeric = " + (int)s);
  }
}

Temel tür ve dönüştürme

Bir temel tür (kısa, bayt vb.) seçebilirsiniz. Sayılardan yapılan dönüştürmeler değeri doğrulamaz.

using System;

// Choose underlying type if needed (default is int)
public enum HttpCode : short
{
  Ok = 200,
  NotFound = 404
}

public class Program
{
  public static void Main(string[] args)
  {
    short code = (short)HttpCode.Ok; // cast to number
    HttpCode fromNum = (HttpCode)404; // cast from number (no validation)
    Console.WriteLine("code=" + code);
    Console.WriteLine("fromNum=" + fromNum);
  }
}

Ayrıştırma ve doğrulama

Metinden okumak için Numaralandırma.TryParse, sayısal değerleri doğrulamak için Numaralandırma.IsDefined kullanın.

using System;

public enum Color
{
  Red = 1, Green = 2, Blue = 3
}

public class Program
{
  public static void Main(string[] args)
  {
    Color c;
    bool ok = Enum.TryParse<Color>("green", true, out c); // ignore case
    Console.WriteLine("Parsed? " + ok + " value=" + c);

    // Validate a numeric value before casting
    int raw = 4;
    bool valid = Enum.IsDefined(typeof(Color), raw);
    Console.WriteLine("Is 4 a defined Color? " + valid);
  }
}

[İşaretler] kullanımda

[İşaretler] ekleyin ve ikinin kuvveti olan değerler atayın. | ile birleştirin, & ile kontrol edin, ~ ve & ile kaldırın.

using System;

[Flags]
public enum FileAccessMode
{
  None  = 0,
  Read  = 1,   // 0001
  Write = 2,   // 0010
  Exec  = 4    // 0100
}

public class Program
{
  public static void Main(string[] args)
  {
    FileAccessMode m = FileAccessMode.Read | FileAccessMode.Write; // combine
    Console.WriteLine("Mode = " + m); // prints "Read, Write"

    // Test a flag (two common patterns)
    bool canWrite = (m & FileAccessMode.Write) != 0;
    Console.WriteLine("Can write? " + canWrite);

    // Remove a flag
    m = m & ~FileAccessMode.Write;
    Console.WriteLine("After remove: " + m);
  }
}

Numaralandırma ipuçları

İpuçları:

  • Açık değerler verin ve bunları sabit tutun.
  • [İşaretler] için ikinin kuvvetlerini kullanın ve Hiçbiri = 0 ekleyin.
  • Girdileri Numaralandırma.TryParse/IsDefined ile doğrulayın.
  • Genel arayüzlerde ham tam sayılar kullanmaktan kaçının; bunun yerine numaralandırmaları tercih edin.

İşaretler özniteliğinin anlamı

Hızlı kontrol: Bir numaralandırmanın Oku | Yaz gibi bit düzeyinde birleştirilebilir seçenekleri temsil etmesini sağlayan öznitelik hangisidir?

Özet

Özet: Açık ve tür güvenli sabitler için numaralandırmaları kullanın. Güvenli şekilde ayrıştırıp doğrulayın. Birleştirilebilir seçenekler için [İşaretler] ekleyin ve işaretleri ayarlamak, kontrol etmek ya da kaldırmak için bit düzeyinde işleçleri kullanın.

Sıkça Sorulan Sorular

“Numaralandırmalar ve [Flags]” dersi ücretsiz mi?

Evet — “Numaralandırmalar ve [Flags]” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 3 dersten oluşur.

“Numaralandırmalar ve [Flags]” dersinde ne öğreneceğim?

Açık değerler ve temel türlerle numaralandırmalar tanımlayın, güvenle dönüştürüp ayrıştırın ve birleştirilebilir seçenekleri [Flags] ile modelleyin. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.

“Numaralandırmalar ve [Flags]” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Yapılar: değer semantiği ve değişmezlik kalıbı
  2. Kayıt benzeri türler ve değere dayalı eşitlik kalıbı
  3. Numaralandırmalar ve [Flags]
← C# Academy Sayfasına Dön