Yükleniyor...

Parametreler

İçeri bir sözcük alan greet adlı bir metot yazın. Parantezlerin içine string name yazın. Gövdeye hi, bir boşluk ve ardından name yazın: Console.WriteLine("hi " + name);. Main içinden greet("lena"); çağırın. Ekran bir satır göstermelidir: hi lena. lena harfleri metodun içine sabit kodlanmamıştır. Çağrı yoluyla gelirler ve o geçiş için name adına otururlar. Bu aktarım bu sayfanın öğrettiği şeydir. Genel sınıf adını Pine tutun.

Parantezlerin içindeki bir ad

Metotlar sayfasında ring sonrası parantezler boş kalıyordu. Yazma satırı her zaman ding idi. Burada parantezler tipli bir ad tutar ki her çağrı farklı bir değer gönderebilsin. Bu tipli ad bir parametredir. Çağrıda yazdığınız değer o geçişin argümanıdır.
Pine dosyasını açın. Sınıf adı Pine kalır. Bu sayfa türü yeniden adlandırmaz. Main hâlâ yalnız boş parantezli bir ring(); demosu tutuyorsa ve bu sayfanın şekline hazırsanız onu silin. Artakalan her foreachi silin. Her ReadLine satırını silin. Tutacağınız dosyada yazı bekleyişi yoktur.
Main dışında, hâlâ sınıfın süslü parantezleri içinde, başlık bu başlangıç şeklinde static void ile başlar. Parantezlerin arasında string sonra name oturur — önce tip, sonra parametre adı. C# bu şekilde tip stringi küçük s ile yazar. Gövde namei etrafında tırnak olmadan kullanır ve sabit metin "hi " ile artı ile birleştirir. "hi " etrafındaki tırnaklar sabit harfleri işaretler. Çıplak name çağrıdan gelen değeri işaretler. Çalıştırmadan önce dosyayı kaydedin. Tam ilk program sonraki kutudadır.

Tutacağınız dosya

Bu, ilk çalıştırdığınız sürümdür. Main parantez içinde değeri olan çağrıyı tutar. greet o değeri kullanan yazma satırını tutar.

greet takes a string

csharp
using System;

public class Pine
{
    public static void Main()
    {
        greet("lena");
    }

    static void greet(string name)
    {
        Console.WriteLine("hi " + name);
    }
}

Üstten okuyun. using System; kısa adları hazırlar. public class Pine türü adlandırır. public static void Main() çalışma zamanının başladığı yerdir. greet("lena"); çağrısı metni parametreye gönderir. static void greet(string name) Console.WriteLine("hi " + name); tutar. Ekranda bir satır: hi lena.

dotnet run ile çalıştırın. Program bir satır yazar ve durur. Sizin yazmanızı beklemez. dotnet run bekliyorsa dosyada hâlâ ReadLine vardır. O satırı silin; greet("lena"); ile üstteki greet metodunu tutun. Ekran hi lena gösterir. Ekran yalnız ding gösteriyorsa eski bir ring(); çağrısı hâlâ çalışıyordur. Ekran name harflerini gösteriyorsa bir yazma satırı o sözcüğü tırnak içine almıştır: Console.WriteLine("name");. Yanlış satır gösteren bir ekran için .NET SDK’yı yeniden kurmazsınız.

Bir tam çalıştırmayı sırayla yürütün. C# Mainde başlar. greet("lena"); çağrısı lena metnini name parametresine gönderir. greet içinde WriteLine hi, bir boşluk ve ardından o değeri kurar; bu yüzden ekran hi lena gösterir. Sonra greet biter ve Main sona erer. Main içinde Console.WriteLine("hi lena"); yazmadınız. Sabit kısmı bir kez greet altına yazıp lenayi çağrıdan geçirdiniz.
Parametre, çağrı doldurana kadar boştur. İlk çağrıda name yalnız o geçiş için lena tutar. Daha sonra "sam" ile yapılan çağrıda aynı parametre adı farklı bir değer tutar. İkinci sözcük için ikinci bir metot oluşturmazsınız; aynı başlığa yeni bir argüman gönderirsiniz.

Aynı metot, farklı sözcükler

Yalnız Maini değiştirin ki greeti iki farklı argümanla iki kez çağırsın. greet metodunun kendisine dokunmayın.

greet with two arguments

csharp
using System;

public class Pine
{
    public static void Main()
    {
        greet("lena");
        greet("sam");
    }

    static void greet(string name)
    {
        Console.WriteLine("hi " + name);
    }
}

Bu ikinci dosyadır. Aynı metodu iki çağrıyla öğretir. dotnet run çalıştırın. Ekran iki satır göstermelidir: hi lena, sonra hi sam. İlk çağrı namei lena ile doldurur. İkinci çağrı namei sam ile doldurur. WriteLinei greet altında kopyalamadınız. Yalnız çağrıların içindeki değerleri değiştirdiniz.
Başlık hâlâ string name derken greet()i boş parantezle çağırırsanız build bir hata yazar — çağrı bir string vermelidir. Metotlar sayfasından aynı Main içinde boş parantezli eski bir ring(); bırakırsanız o çağrı greet ile eşleşmez ve artakalan bir ring metodu hi satırlarınızın yanında hâlâ ding yazabilir. Maini bu dersin ihtiyaç duyduğu greet çağrılarına temizleyin. İki satırı gördükten sonra tutmak istediğiniz şekil bir çağrıysa tek çağrılı dosyayı geri koyun: Main içinde bir greet("lena");.

Değer olarak bir tam sayı

Parametreler yalnız metin için değildir. n adlı bir int alan ve onu yazan ikinci bir metot yazın. Main içinden show(9); ve show(4); gibi tam sayılarla çağırın.

show takes an int

csharp
using System;

public class Pine
{
    public static void Main()
    {
        show(9);
        show(4);
    }

    static void show(int n)
    {
        Console.WriteLine(n);
    }
}

Bu üçüncü dosyadır. greet şekli için tuttuğunuz dosya değildir. dotnet run çalıştırın. Ekran iki satır göstermelidir: 9, sonra 4. Çağrıda 9 veya 4 etrafında tırnak yoktur — bunlar int değerleridir, metin değil. show içinde Console.WriteLine(n) gelen sayıyı yazar. Bu iki satırı gördükten sonra greet demosunu geri koyun. Her iki sürüm de geçerli C#tır. Aynı fikri öğretirler: çağrı bir değer gönderir, parametre onu gövde için tutar.
int çalıştırmasını bir kez daha okuyun. İlk çağrı ni 9 yapar ve 9 yazar. İkinci çağrı ni 4 yapar ve 4 yazar. n adı başlıkta bir kez int n olarak bildirilir. Her çağrı o geçiş için yeni bir değer verir. show içine tırnaklı bir sözcük geçirmek, örneğin show("nine");, bu şekilde int ile eşleşmez — build bir hata yazar. greet içine çıplak bir sayı geçirmek, örneğin greet(3);, string ile eşleşmez — build yine hata yazar. Argüman tipini parametre tipiyle eşleştirin.

Yaygın bir karışıklık parametrenin adını metin olarak yazmaktır: Console.WriteLine("name");. Bu n-a-m-e harflerini yazar. lena yazmaz. Argümanın harflerini ekranda istiyorsanız Console.WriteLine("hi " + name)i name etrafında tırnak olmadan tutun. Başka bir karışıklık parametreyi metot başlığı yerine Main içinde bildirmektir. Tipli ad bu sayfada greet(...) veya show(...) içine aittir, Mainin parantezlerine değil. ring sayfasındaki boş (), başlık string name istediğinde yeterli değildir.

void hâlâ çağrı yoluyla hiçbir şeyin geri gelmediği anlamına gelir. Bir metodun parantezlerine string name veya int n koyabilir, çağrıda eşleşen bir değer geçirebilir ve o değeri gövdeden yazabilirsiniz. İki argümanlı iki çağrı, metodu kopyalamadan iki farklı satır yazar. Sonraki sayfa return’dür; orada bir metot yalnız gövde içinde yazmak yerine bir değeri Maine geri verir.

Ekran argümanı tutar

Tutacağınız dosya, Main greet("lena"); çağırdığında hi lena yazar. name adı yazma satırında etrafında tırnak olmadan durur. name etrafındaki tırnaklar harf yazar, argümanı değil. Çağrıdaki boş (), string name isteyen bir başlıkla eşleşmez.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

❓
5
Sorular
🎯
70%
Geçmek İçin
♾️
∞
Süre
🔄
∞
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek