Menu
Coddy logo textTech

İsimlendirilmiş Argümanlar

Coddy'nin C# Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 49 / 70.

Adlandırılmış bağımsız değişkenler, konuma güvenmek yerine adını kullanarak hangi parametrenin bir değer alacağını belirtmenizi sağlar. Bu, yöntem çağrılarını daha anlaşılır hâle getirir ve bağımsız değişkenleri herhangi bir sırayla geçirmenize olanak tanır.

Değerden önce parametre adını ve ardından iki nokta kullanın:

public static void CreateUser(string name, int age, bool isActive)
{
    Console.WriteLine($"{name}, Age: {age}, Active: {isActive}");
}

// Adlandırılmış argümanlar kullanma
CreateUser(name: "Alice", age: 25, isActive: true);
CreateUser(age: 30, isActive: false, name: "Bob");  // Herhangi bir sıra çalışır

Adlandırılmış bağımsız değişkenler, isteğe bağlı parametrelerle birleştirildiğinde öne çıkar. Kendinden önceki tüm isteğe bağlı değerleri sağlamak yerine, doğrudan ihtiyacınız olan değere geçebilirsiniz:

public static void Configure(string host, int port = 8080, bool useSSL = false, int timeout = 30)
{
    Console.WriteLine($"{host}:{port}, SSL: {useSSL}, Timeout: {timeout}");
}

// port ve useSSL'i atla, yalnızca timeout belirt
Configure("localhost", timeout: 60);
Configure("server.com", useSSL: true);

Konumsal ve adlandırılmış bağımsız değişkenleri birlikte kullanabilirsiniz, ancak konumsal bağımsız değişkenler önce gelmelidir. Adlandırılmış bağımsız değişkenler, özellikle aynı türden birden çok parametreye sahip yöntemlerde veya anlamı yalnızca değerden açıkça anlaşılmayan boolean bayraklarında okunabilirliği artırır.

challenge icon

Görev

Kolay

Yöntem çağrılarını tamamen anlaşılır hâle getirmek için adlandırılmış bağımsız değişkenlerden yararlanan bir rapor oluşturucu geliştirelim. Yöntemlerin birden çok parametresi olduğunda — özellikle aynı türden parametreler veya boolean bayrakları söz konusuysa — adlandırılmış bağımsız değişkenler kodun kendi kendini açıklamasını sağlar.

Kodunuzu iki dosyaya ayıracaksınız:

  • ReportGenerator.cs: ReportGenerator ad alanında, birkaç isteğe bağlı parametreye sahip bir yöntemi bulunan bir Reports sınıfı oluşturun:
    • GenerateReport(string title, string author = "Anonymous", bool includeHeader = true, bool includeSummary = false, int maxPages = 10)
    • Bu yöntem, rapor yapılandırmasını açıklayan biçimlendirilmiş bir dize döndürmelidir
    • Biçim: Report: {title} by {author} | Header: {Yes/No}, Summary: {Yes/No}, Max Pages: {maxPages}
  • Program.cs: Ana dosyanızda, GenerateReport yöntemini farklı şekillerde çağırarak adlandırılmış bağımsız değişkenlerin gücünü gösterin — ihtiyaç duymadığınız isteğe bağlı parametreleri atlayın ve her rapor için yalnızca önemli olanları belirtin.

Üç girdi alacaksınız:

  • Birinci rapor başlığı
  • İkinci rapor başlığı
  • Üçüncü rapor başlığı

Farklı yapılandırmalara sahip üç rapor oluşturun:

  1. Birinci rapor: Yalnızca başlığı kullanın (tüm varsayılanlar uygulanır)
  2. İkinci rapor: includeSummary: true ve maxPages: 25 ile birlikte başlığı kullanın (author ve includeHeader parametrelerini atlayarak varsayılan değerlerini koruyun)
  3. Üçüncü rapor: author: "Admin", includeHeader: false ve includeSummary: true ile birlikte başlığı kullanın (maxPages varsayılan değerini koruyun)

Her rapor sonucunu kendi satırına yazdırın.

Örneğin girdiler Sales Q1, Annual Review ve Inventory Check ise çıktı şöyle olmalıdır:

Report: Sales Q1 by Anonymous | Header: Yes, Summary: No, Max Pages: 10
Report: Annual Review by Anonymous | Header: Yes, Summary: Yes, Max Pages: 25
Report: Inventory Check by Admin | Header: No, Summary: Yes, Max Pages: 10

Adlandırılmış bağımsız değişkenlerin, önem verdiğiniz parametrelere doğrudan geçmenizi sağladığına dikkat edin — yalnızca author değerini değiştirmek için includeHeader veya includeSummary belirtmeniz gerekmez. Bu, yöntem çağrılarınızı çok daha okunabilir ve amacını daha iyi ortaya koyan bir hâle getirir!

Kendin dene

using System;
using Reports;

class Program
{
    public static void Main(string[] args)
    {
        // Üç rapor başlığını oku
        string title1 = Console.ReadLine();
        string title2 = Console.ReadLine();
        string title3 = Console.ReadLine();

        // Bir ReportGenerator örneği oluştur
        ReportGenerator generator = new ReportGenerator();

        // TODO: İlk raporu oluştur - yalnızca başlığı kullan (tüm varsayılanlar geçerlidir)
        

        // TODO: İkinci raporu oluştur - includeSummary: true ve maxPages: 25 ile başlığı kullan
        // (author ve includeHeader'ı atla, varsayılanlarını koru)
        

        // TODO: Üçüncü raporu oluştur - author: "Admin", includeHeader: false ve includeSummary: true ile başlığı kullan
        // (maxPages varsayılanını koru)
        

        // Her rapor sonucunu yazdır
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online C# derleyicisi