0Pricing
C# Academy · Ders

Arayüzlere giriş ve birden çok arayüz uygulama

Arayüzleri sözleşmeler olarak tanımlayın, tek bir sınıfta birden çok arayüz uygulayın, arayüz tabanlı çok biçimliliği kullanın ve açık arayüz uygulamasının temellerini öğrenin.

Arayüzlere giriş ve birden çok arayüz uygulama, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 3 dersinin 2. 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.

Arayüzlere genel bakış

Amaç: Esnek kod için arayüzlere göre programlayın.

  • Arayüzler nasıl yapılacağını değil neyi bildirir
  • Birden çok arayüz uygulayın
  • Arayüzleri işlevlere aktarın
  • Ad çakışmalarını çözmek için açık uygulama kullanın

Birden çok arayüz uygulama

Arayüzler bir sözleşme tanımlar. Tek bir sınıf, farklı rolleri ifade etmek için birden çok arayüz uygulayabilir.

using System;

public interface IPlayable
{
  void Play();
}

public interface IHasDuration
{
  int DurationSeconds { get; }
}

public class Song : IPlayable, IHasDuration
{
  private readonly string _title;
  private readonly int _seconds;

  public Song(string title, int seconds)
  {
    _title = title;
    _seconds = seconds;
  }

  public int DurationSeconds { get { return _seconds; } }

  public void Play()
  {
    Console.WriteLine("Playing " + _title + " (" + _seconds + "s)");
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Song s = new Song("Hello", 5);
    s.Play();
    Console.WriteLine("Duration = " + s.DurationSeconds);
  }
}

Arayüzlerle çok biçimlilik

Yöntemlerde bir arayüz türü kabul edin. Çağıranlar herhangi bir uygulamayı aktarabilir.

using System;

public interface IPrintable
{
  void Print();
}

public class Report : IPrintable
{
  private readonly string _text;
  public Report(string text) { _text = text; }
  public void Print() { Console.WriteLine("Report: " + _text); }
}

public class Label : IPrintable
{
  private readonly string _text;
  public Label(string text) { _text = text; }
  public void Print() { Console.WriteLine("Label: " + _text); }
}

public class Program
{
  // Works with any IPrintable (polymorphism)
  static void PrintAll(IPrintable item)
  {
    item.Print();
  }

  public static void Main(string[] args)
  {
    PrintAll(new Report("Sales Q1"));
    PrintAll(new Label("Fragile"));
  }
}

Açık uygulama

Açık uygulama, aynı adlı üyelerin anlamını ayırt eder ve bunları sınıfın dış arayüzünden gizler.

using System;

public interface ILogger { void Write(string msg); }
public interface IFileWriter { void Write(string msg); }

public class DualWriter : ILogger, IFileWriter
{
  // Explicit implementations: only visible via the interface reference
  void ILogger.Write(string msg) { Console.WriteLine("[LOG] " + msg); }
  void IFileWriter.Write(string msg) { Console.WriteLine("[FILE] " + msg); }

  public void Demo()
  {
    Console.WriteLine("DualWriter ready");
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    DualWriter dw = new DualWriter();
    dw.Demo();

    ILogger log = dw;
    IFileWriter file = dw;

    log.Write("started");
    file.Write("saved");
  }
}

Arayüz koleksiyonları

Farklı uygulamaları arayüz türündeki bir listede depolayın ve bunlar üzerinde aynı biçimde yineleyin.

using System;
using System.Collections.Generic;

public interface ITask
{
  void Run();
}

public class EmailTask : ITask
{
  public void Run() { Console.WriteLine("Send email"); }
}

public class BackupTask : ITask
{
  public void Run() { Console.WriteLine("Run backup"); }
}

public class Program
{
  public static void Main(string[] args)
  {
    List<ITask> tasks = new List<ITask>();
    tasks.Add(new EmailTask());
    tasks.Add(new BackupTask());

    foreach (ITask t in tasks)
    {
      t.Run(); // calls the right implementation
    }
  }
}

Arayüz ipuçları

İpuçları:

  • Tek bir rolü tanımlayan küçük arayüzleri tercih edin.
  • Test için arayüzleri kullanın (uygulamaları değiştirin).
  • C# 6'da arayüzlerde fields veya yöntem gövdeleri yoktur.
  • Davranışları birleştirmek için birden çok arayüz uygulayın.

Arayüzler kavramı

Hızlı kontrol: C#'ta arayüzlerle ilgili hangi ifade doğrudur?

Özet

Özet: Arayüzler sözleşmelerdir ve sınıf başına birden çok uygulamayı destekler. Arayüzleri işlevlere aktarın, onları küçük tutun ve çakışmaları çözmek için açık uygulama kullanın.

Sıkça Sorulan Sorular

“Arayüzlere giriş ve birden çok arayüz uygulama” dersi ücretsiz mi?

Evet — “Arayüzlere giriş ve birden çok arayüz uygulama” 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.

“Arayüzlere giriş ve birden çok arayüz uygulama” dersinde ne öğreneceğim?

Arayüzleri sözleşmeler olarak tanımlayın, tek bir sınıfta birden çok arayüz uygulayın, arayüz tabanlı çok biçimliliği kullanın ve açık arayüz uygulamasının temellerini öğrenin. 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 2. dersidir.

“Arayüzlere giriş ve birden çok arayüz uygulama” 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. virtual/override/sealed ve soyut sınıflar
  2. Arayüzlere giriş ve birden çok arayüz uygulama
  3. Çok biçimlilik ve dinamik gönderim
← C# Academy Sayfasına Dön