C # 'da adlandırılmış ve isteğe bağlı parametreler nasıl kullanılır?

Microsoft, C # 4.0'da adlandırılmış ve isteğe bağlı parametreler için destek sağlamıştır. Konum değil, bağımsız değişkenin adına dayalı bir bağımsız değişken belirtmek için adlandırılmış bir parametre kullanılırken, yöntem imzasındaki bir veya daha fazla parametreyi çıkarmak için isteğe bağlı bir parametre kullanılabilir. Bir yöntemin parametreleri, yöntem çağrıldığında bu parametrelere bir değer iletmeniz gerekip gerekmediğine bağlı olarak gerekli veya isteğe bağlı olabilir.

Adlandırılmış ve isteğe bağlı parametrelerin yalnızca yöntemlerle değil, dizinleyiciler ve temsilcilerle de kullanılabileceği unutulmamalıdır. Bu makale, C # programlama dilinin bu iki güçlü özelliğini ve bunlarla nasıl çalışabileceğimizi tartışıyor.

Bu makalede verilen kod örnekleriyle çalışmak için sisteminizde Visual Studio 2019 yüklü olmalıdır. Halihazırda bir kopyanız yoksa, Visual Studio 2019'u buradan indirebilirsiniz.

Visual Studio'da bir konsol uygulaması projesi oluşturun

Öncelikle Visual Studio'da bir .NET Core konsol uygulaması projesi oluşturalım. Sisteminizde Visual Studio 2019'un kurulu olduğunu varsayarak, Visual Studio'da yeni bir .NET Core konsol uygulaması projesi oluşturmak için aşağıda özetlenen adımları izleyin.

  1. Visual Studio IDE'yi başlatın.
  2. "Yeni proje oluştur" u tıklayın.
  3. "Yeni proje oluştur" penceresinde, görüntülenen şablon listesinden "Konsol Uygulaması (.NET Core)" öğesini seçin.
  4. Sonrakine tıkla.
  5. Daha sonra gösterilen "Yeni projenizi yapılandırın" penceresinde, yeni projenin adını ve yerini belirtin.
  6. Oluştur'u tıklayın.

Bu, Visual Studio 2019'da yeni bir .NET Core konsol uygulaması projesi oluşturacaktır. Bu projeyi, bu makalenin sonraki bölümlerinde adlandırılmış ve isteğe bağlı parametrelerle çalışmak için kullanacağız.

C # 'da adlandırılmış parametreleri kullanın

Bir yöntemi, kurucuyu, dizin oluşturucuyu veya temsilciyi çağırdığınızda, gerekli parametreler için bağımsız değişkenler iletmelisiniz, ancak isteğe bağlı parametreler olarak tanımlanan parametreler için bağımsız değişkenleri atlayabilirsiniz.

Çoğu zaman birçok parametresi olan bir yöntemi çağırmanız gerekebilir. Ve sadece gerekli parametrelerle böyle bir yöntemi çağırdığınızda bile, bazen hangi bağımsız değişkenin hangi parametre ile eşleştiğini anlamak son derece zordur. İşte adlandırılmış argümanlar kurtarmaya geldiği yer.

C # programlama dilinde adlandırılmış bağımsız değişkenler, bir yöntemin bağımsız değişken adını değeriyle ilişkilendirmek için kullanılır - yani, yöntem çağrılırken bağımsız değişken olarak iletilen değer. Adlandırılmış bir argüman kullanılırken, argümanların geçirildikleri sırayla değerlendirildiği unutulmamalıdır.

Bir örneğe bakalım. Yeni konsol uygulama projenizin Program sınıfının içine Add adlı aşağıdaki yöntemi yazın.

public static int Add (int x, int y, int z, int a, int b, int c)

{

   dönüş x + y + z + a + b + c;

}

Aşağıdaki kod parçacığında gösterildiği gibi Add yöntemini çağırdığınızı varsayalım.

statik geçersiz Ana (dize [] değiştirgeler)

{

    Ekle (5, 10);

}

Add yönteminin imzasında altı gerekli parametre olduğundan (hiçbiri isteğe bağlı parametreler değildir), ancak yalnızca iki argüman ilettiğiniz için yukarıdaki kod çalışmaz. Aşağıdaki hata ile karşılaşacaksınız.

Bu nedenle, çağrıyı aşağıda verilen kod parçacığında gösterildiği gibi tatmin etmek için parametrelerin her birine değer iletmekle sınırlandırılırsınız.

statik geçersiz Ana (dize [] değiştirgeler)

{

   Ekle (5, 10, 8, 2, 3, 6);

}

Bir yöntemin parametrelerinde çeşitli veri türlerine sahip olduğunuzda işler karmaşıklaşır. Bunu göstermek için, aşağıdaki kod parçacığında gösterildiği gibi Add yöntemimizi değiştirelim.

public static int Add (int x, int y, int z, double a, double b, double c)

{

    return x + y + z + Convert.ToInt32 (a) + Convert.ToInt32 (b) + Convert.ToInt32 (c);

}

Parametrelerin veri türlerini ve konumlarını hatırlamak zahmetlidir. Bunun çözümü, adlandırılmış bağımsız değişkenlerden yararlanmak ve değerleri aşağıda verilen kod parçacığında gösterildiği gibi yönteme iletmektir.

statik geçersiz Ana (dize [] değiştirgeler)

{

    Ekleyin (x: 5, y: 10, z: 8, a: 2.0, b: 3.0, c: 6.0);

}

Aşağıda verilen kod parçacığında gösterildiği gibi, adlandırılmış bağımsız değişkenlerin sırasını bile değiştirebilirsiniz.

statik geçersiz Ana (dize [] değiştirgeler)

{

    Ekleyin (z: 8, x: 5, y: 10, c: 6, a: 2.0, b: 3.0);

}

Bağımsız değişkenleri adlandırdığınız sürece, bunları herhangi bir sırayla iletebilirsiniz ve derleyici herhangi bir hatayı işaretlemeyecektir - yani, bu C # için tamamen geçerlidir.

C # 'da isteğe bağlı parametreleri kullanın

C # programlama dilindeki isteğe bağlı parametreler, yöntemi arayan kişinin atlamakta serbest olduğu bir yöntem imzasında bağımsız değişkenler belirtmenize olanak tanır. Diğer bir deyişle, gerekli parametreler için değerler belirtmeniz gerekirken, isteğe bağlı parametreler için değer belirtmemeyi seçebilirsiniz. Bazı durumlarda, isteğe bağlı bir parametrenin kendisiyle ilişkilendirilmiş varsayılan bir değeri de olabilir.

İsteğe bağlı bir parametrenin varsayılan değeri, üç tür değerden herhangi birine sahip olabilir: sabit bir ifade, değer türü biçiminde bir ifade veya v'nin bir değer olduğu varsayılan (v) biçiminde bir ifade yazın.

Aşağıdaki kod parçacığında gösterilen Add yöntemi, C # 'da bir yönteme isteğe bağlı bağımsız değişkenleri nasıl belirtebileceğinizi gösterir.

public static int Ekle (int x, int y = 0, int z = 0)

{

    dönüş x + y + z;

}

Ve işte Add yöntemini nasıl çağırabileceğiniz.

Ekle (10);

Add yöntemindeki parametrelerden ikisi isteğe bağlı olduğundan, yöntemi çağırırken yönteme tek bir tamsayı değeri iletebilirsiniz. Bir yöntemde parametreleri tanımlama sırasına uymaya özen gösterin. Önce gerekli parametreler gelmeli, ardından varsa isteğe bağlı parametreler gelmelidir.

COM API'leriyle birlikte çalışabilirliği geliştirmek için C # programlama diline adlandırılmış ve isteğe bağlı parametreler eklenmiştir. Adlandırılmış parametrelerin kullanılması, kaynak kodun okunabilirliğini artırabilir. Ayrıca, yöntem tanımı aynı olduğunda aşırı yüklenmiş yöntemleri kullanmanın yerine isteğe bağlı parametrelerden yararlanabilirsiniz.

C # ile daha fazlasını nasıl yapabilirsiniz:

  • C # 'da akıcı arabirimler ve yöntem zinciri nasıl kullanılır?
  • C # 'da statik yöntemler birim testi nasıl yapılır
  • C # 'da Tanrı nesneleri nasıl yeniden düzenlenir
  • C # 'da ValueTask nasıl kullanılır?
  • C'de değişmezlik nasıl kullanılır
  • C # 'da const, salt okunur ve statik nasıl kullanılır?
  • C # 'da veri ek açıklamaları nasıl kullanılır
  • C # 8'de GUID'lerle nasıl çalışılır
  • C # 'da soyut bir sınıf ve arabirim ne zaman kullanılır?
  • C # 'da AutoMapper ile nasıl çalışılır
  • C # 'da lambda ifadeleri nasıl kullanılır
  • C # 'ta Action, Func ve Predicate temsilcileriyle nasıl çalışılır?
  • C # 'da temsilcilerle nasıl çalışılır
  • C # 'da basit bir kaydedici nasıl uygulanır
  • C # 'da özniteliklerle nasıl çalışılır
  • C # 'da log4net ile nasıl çalışılır
  • Depo tasarım modeli C # 'da nasıl uygulanır?
  • C # 'da yansıma ile nasıl çalışılır
  • C # 'da dosya sistemi gözlemcisi ile nasıl çalışılır
  • C # 'da geç başlatma nasıl gerçekleştirilir
  • C # 'da MSMQ ile nasıl çalışılır
  • C # 'da uzatma yöntemleriyle nasıl çalışılır
  • C # 'da lambda ifadeleri nasıl kullanılır
  • Volatile anahtar kelime C # 'da ne zaman kullanılır?
  • C # 'da getiri anahtar kelimesi nasıl kullanılır
  • C # 'da polimorfizm nasıl uygulanır?
  • C # 'da kendi görev zamanlayıcınızı nasıl oluşturabilirsiniz?
  • C # 'da RabbitMQ ile nasıl çalışılır
  • C # 'da bir demet ile nasıl çalışılır
  • C # 'da sanal ve soyut yöntemleri keşfetmek
  • C # 'da Dapper ORM nasıl kullanılır
  • C # 'da flyweight tasarım desenini kullanma