Altbilgi içeriğine atla
Iron Academy Logo
C# Uygulaması
C# Uygulaması

Diğer Kategoriler

Listeden Öğe Seçme - Spectre Console Serisi

[[academy-video-youtube({"vid": "6HNgqAILhuw", "start_time": "0", "title": "Bir Listeden Öğeleri Seçme - Spectre Console Serisi", "creator": "Tim Corey", "length": "6m 26s"})]]

Spectre Console, geliştiricilerin düz, statik metin programları yerine etkileşimli konsol uygulamaları oluşturmasına olanak tanıyan güçlü bir .NET için NuGet paketidir. En kullanışlı özelliklerinden biri, kullanıcının klavyeleri ile doğrudan kaydırarak ve seçerek bir seçenekler listesi sunmasına olanak tanıyan Spectre Console Selection Prompt'tur. Bu, konsol girişini daha güvenilir, kullanıcı dostu ve insanların cevaplarını elle yazmalarıyla karşılaştırıldığında görsel olarak daha düzgün hale getirir.

Tim Corey, "Bir Listeden Öğeleri Seçme - Spectre Console Serisi" adlı videosunda bu özelliğin nasıl kullanılacağını tam olarak gösteriyor. Bu makalede, atılan adımları izlerken zaman damgalarını belirterek, onun açıklamalarına adım adım eşlik edeceğiz, böylece izleyip kodlayabilirsiniz. .NET konsol uygulamalarınızda Seçim İstemcisi oluşturmayı ve özelleştirmeyi öğrenmek için harika bir yoldur.

Derse Giriş

Saat 0:00'da, Tim Spectre Console'un, geliştiricilerin C# konsol uygulamalarını görsel olarak çekici ve bilgilendirici uygulamalara dönüştürmelerine olanak tanıdığını açıklar. Videoserisi, kütüphaneyi 10 dakikalık bölümler halinde kapsar ve açıklamada kaynak kodlarına bağlantı verilmiştir.

Bu derste (0:18), Tim, kullanıcıdan bir liste içinden bir seçenek seçmesini istemeyi ve ardından bu liste içinde gezinmek için klavyeyi kullanmayı nasıl sağlayacağınıza odaklanıyor. Bu "sor ve cevapla" modeli, modern ve etkileşimli hissettiren konsol uygulamaları oluşturmanın temelidir. Ayrıca izleyicilere (0:27) kanalına abone olmalarını ve daha fazla eğitim kaynağı için iamtimcorey.com adresini ziyaret etmelerini hatırlatıyor.

Bir Seçim İstemi Oluşturma

0:34'te, Tim uygulamalarında sıkça kullandığı yer tutucu adlarının bir listesini gösteriyor. Bu, aynı şekilde meyve listesi—elma, muz, portakal—olabilir, eğer "favori meyve" örneği istiyorsanız. Kullanıcının seçeceği yanıtı saklamak için bir string türünde değişken oluşturur:

string favoriteName;
string favoriteName;

Spectre Console Selecting Items List 1 related to Bir Seçim İstemi Oluşturma

Sonrasında, 0:57'de Tim, önceki derste ele alınan temel istemden, tam bir SelectionPrompt fonksiyonuna geçiyor:

favoriteName = AnsiConsole.Prompt(
    new SelectionPrompt<string>()
        .Title("Which is your favorite placeholder name")
        .AddChoices(names)
);
favoriteName = AnsiConsole.Prompt(
    new SelectionPrompt<string>()
        .Title("Which is your favorite placeholder name")
        .AddChoices(names)
);

O, (1:13) SelectionPrompt'un bir başlık gerektirdiğini açıklar; bu durumda başlık "Hangi, favori yer tutucu isminiz?" olur. Eğer favori meyveyi sorsaydınız, başlığı "Favori meyveniz hangisi?" şeklinde değiştirebilirdiniz.

Metni, örneğin Spectre Console'un stilleriyle—mavi, yeşil veya gri renkler kullanarak—süsleyebilirken, bu derste seçim isteminin kendisine odaklanıyor.

Tim, saat 1:39'da .AddChoices() yöntemini çağırarak seçenekleri—isim listesini—ekliyor. Bu seçimler herhangi bir şey olabilir: meyve, sayılar, nesneler veya hatta bir "arama" fonksiyonunun sonuçları.

Son olarak, saat 1:55'te Tim, Spectre Console'un biçimlendirme satırını kullanarak seçilen öğeyi kullanıcıya geri gösterir:

AnsiConsole.MarkupLine($"Your favorite name is [red]{favoriteName}[/].");
AnsiConsole.MarkupLine($"Your favorite name is [red]{favoriteName}[/].");

Bu, seçili yanıtı kırmızı renkte göstermek için satır içi işaretleme kullanır, ancak konsol tema gereksinimleriniz varsa mavi veya yeşil de kullanabilirsiniz.

Seçim İstemi Çalıştırma

Tim kodu saat 2:34'te kaydeder ve çalıştırır. Konsolda görüntülenir:

  • İsimler veya meyveler listesi.

  • Ok tuşları, yukarı ve aşağı hareket etmenizi sağlar (2:41).

  • Bir öğeyi seçmek için Enter tuşuna basın.

Tim, "Sue Storm" seçimini gösteriyor (2:50). Enter tuşuna basıldığında liste kaybolur ve konsol şunları çıktılar:

Your favorite name is Sue Storm.
Your favorite name is Sue Storm.

Eğer bu bir meyve listesi olsaydı, "En sevdiğiniz meyve Muz" ya da "En sevdiğiniz meyve Elma" şeklinde görebilirdiniz.

Uzun Listeleri İşleme

Tim daha sonra yaygın bir sorunu ele alıyor: uzun listeler. 3:13'te, görünen öğeleri sınırlamak için PageSize özelliğini tanıtıyor:

.PageSize(4)
.PageSize(4)

O (3:19) dört sayısının özelliği göstermek amacıyla bilinçli olarak küçük tutulduğunu açıklar. Yalnızca bu kadar çok öğe aynı anda görüntülenir. Eğer elma, muz, portakal, mango, ananas gibi büyük bir meyve listeniz varsa, PageSize konsolun sonsuzca kaymasını önler.

Kullanıcılara rehberlik etmek için Tim, 3:34'te gri renkli bir MoreChoicesText mesajı ekler:

.MoreChoicesText("[grey](Move down to reveal more choices)[/]")
.MoreChoicesText("[grey](Move down to reveal more choices)[/]")

Bu metin, kullanıcının daha fazla seçeneği ortaya çıkarmak için aşağıya doğru hareket edebileceğini belirtir. Bu, özellikle listenizin boyutu büyük olduğunda ve bir hata veya karışıklık riski yerine net bir ipucu istediğinizde faydalıdır.

Uzun Liste Davranışını Göstermek

Tim programı 4:08'de tekrar çalıştırır.

Başlangıçta sadece dört seçenek görünüyor.

  • Gri mesaj, "Daha fazla seçeneği göstermek için aşağı hareket edin" diyor (4:13).

Aşağıya kaydırmak, ek öğeleri gösterir.

Geri yukarı kaydırmak ilk olanları tekrar gösterir (4:20).

Tim, bunun (4:25) büyük listeler için ideal olduğunu not eder—sonsuz konsol kaydırması yok. Aynı anda 10 veya 15 öğe gösterebilir ve kullanıcıya kalan sayfaları gezme olanağı verebilirsiniz. Bu, konsolu bir seferde çok fazla çıktı ile boğma sorununu çözer.

Neden Seçim İstemi Yazmaktan Daha İyidir

Tim, 4:38'de Neden Seçim İsteminin Yazmaktan Daha İyi Olduğunu Vurguluyor:

  • Seçim yaptıktan sonra liste kaybolur (4:41).

  • Seçtiğiniz cevabı hemen görürsünüz (4:45).

Bu durumu (5:05), kullanıcıların "evet" veya "hayır" yazması gereken eski istemlere benzetiyor. SelectionPrompt ile bu seçenekleri doğrudan sunabilir ve kullanıcıların ok tuşlarıyla seçim yapmasına izin verebilirsiniz. Bu, hataları azaltır ve deneyimi daha akıcı hale getirir.

girişi

Diğer Kullanımlar ve Gelecekteki Konular

Tim (5:43) anlamını aktarır, bu ders bir listeden bir öğe seçmeyi kapsar. Gelecek videolarda (5:39), kullanıcıların birden çok öğeyi açıp kapatabileceği ve ardından Enter'a basarak onaylayabileceği çoklu seçim istemlerini gösterecektir.

Ayrıca (5:47) listedeki öğelerin, dizgiler, tam sayılar, meyveler veya bir fonksiyondan döndürülen varsayılan seçenekler gibi herhangi bir nesne türü olabileceğini belirtiyor. Örneğin, bir isim yerine kullanıcıya en sevdiği meyveyi ("elma," "muz," "portakal") sorabilirsiniz (5:55).

Spectre Console'un Seçim Uyarısı ile varsayılanları ayarlayabilir, gerekli yanıtları işleyebilir ve bir seçim yapıldıktan sonra alınacak eylemi özelleştirebilirsiniz.

Sonuç

Tim, videosunu (6:01) kapatırken Spectre Console'da öğe seçimini bu şekilde uyguladığını yeniden teyit ediyor - konsol uygulamalarında listeleri temiz, kullanıcı dostu bir şekilde yönetmenin yolu. Favori bir meyve, bir sayı veya bir nesne isteyip istemediğinize bakılmaksızın, Seçim İstemcisi uygulamanıza ek yazma veya hata yapmadan düzgün bir deneyim sunar.

Tim Corey'nin Videosundan Önemli Çıkarımlar

Spectre Console'un SelectionPrompt özelliği, kullanıcıların manuel girdi yazmak yerine listeler arasında ok tuşlarıyla gezinmelerini sağlar.

  • Başlık, Seçenekler, Renkler (mavi, yeşil, gri), Sayfa Boyutu ve Daha Fazla Seçenek Metni ile daha fazla seçenek ortaya çıkarmaya yardımcı olacak şekilde özelleştirin.

Bir öğe seçildiğinde, liste kaybolur ve seçilen cevap görüntülenir.

  • Hem kısa hem de uzun listeler için idealdir, konsol kaydırma sorunlarını önler.

  • Herhangi bir veri türüyle çalışabilir (string, sayılar, elma, muz, portakal gibi meyveler veya özel nesneler).

  • Tim, kullanıcıların birden çok seçeneği açıp kapatabileceği ve ardından Enter'a basarak onaylayabileceği çoklu seçim istemlerini gelecek videolarda ele alacak.
Hero Worlddot related to Listeden Öğe Seçme - Spectre Console Serisi
Hero Affiliate related to Listeden Öğe Seçme - Spectre Console Serisi

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara