Java üzerinde çalıştım ve .Net teknolojisinde yeni
Değişken girdi parametrelerini kabul eden C # 'da bir işlev bildirmek mümkün mü
Aşağıdaki Java sözdizimine benzer herhangi bir C # sözdizimi var mı?
void f1(String... a)
Java üzerinde çalıştım ve .Net teknolojisinde yeni
Değişken girdi parametrelerini kabul eden C # 'da bir işlev bildirmek mümkün mü
Aşağıdaki Java sözdizimine benzer herhangi bir C # sözdizimi var mı?
void f1(String... a)
Yanıtlar:
Evet, C # eşdeğeri varargs parametrelerine sahiptir. Parametre dizileri olarak adlandırılırlar ve paramsdeğiştiriciyle birlikte sunulurlar :
public void Foo(int x, params string[] values)
O halde şu numarayı arayın:
Foo(10, "hello", "there");
Tıpkı Java'da olduğu gibi, bu şekilde değişebilen yalnızca son parametredir. params object[] objectsTek bir bağımsız değişkenin object[]yeniden sarılıp sarılmayacağını hatırlamanız gerektiğinden, bir parametresinin (Java'da olduğu gibi) kolayca kafa karışıklığına neden olabileceğini unutmayın . Benzer şekilde, herhangi bir boş değer nullatanabilir tür için, tek bir bağımsız değişkeninin bir dizi başvurusu mu yoksa tek bir dizi öğesi olarak mı ele alınacağını hatırlamanız gerekir . ( Derleyicinin yalnızca gerekiyorsa diziyi oluşturduğunu düşünüyorum , ancak bunu hatırlamak zorunda kalmamı önleyen kod yazma eğilimindeyim.)
Parametrelere bir göz atın (C # Referansı)
Params anahtar sözcüğü, değişken sayıda bağımsız değişken alan bir yöntem parametresi belirtmenize olanak tanır.
Parametre bildiriminde belirtilen türde argümanların virgülle ayrılmış bir listesini veya belirtilen türde bir argüman dizisi gönderebilirsiniz. Ayrıca hiçbir argüman gönderemezsiniz.
Bir yöntem bildiriminde params anahtar sözcüğünden sonra ek parametrelere izin verilmez ve bir yöntem bildiriminde yalnızca bir params anahtar sözcüğüne izin verilir.
Örnekte gösterildiği gibi, yöntem şu şekilde bildirilmiştir:
public static void UseParams(params int[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + " ");
}
Console.WriteLine();
}
ve olarak kullanıldı
UseParams(1, 2, 3, 4);