SORU
30 AĞUSTOS 2008, CUMARTESİ


Tek bir nesne geçmek için [nasıl] parametreler bir nesne için[]

Parametreler nesne alan bir yöntemi var[] gibi:

void Foo(params object[] items)
{
    Console.WriteLine(items[0]);
}

Bu yöntem için iki nesne dizileri geçtiğimde, gayet iyi çalışıyor:

Foo(new object[]{ (object)"1", (object)"2" }, new object[]{ (object)"3", (object)"4" } );
// Output: System.Object[]

Ama tek bir nesne geçtiğimde[], benim nesne almaz[] ilk param, onun yerine ben gibi tüm öğeleri onları geçmek istedi onun tek tek alır:

Foo(new object[]{ (object)"1", (object)"2" });
// Output: 1, expected: System.Object[]

Nasıl tek bir nesne geçtim mi[] parametreler bir dizi için ilk olarak bir tartışma mı?

CEVAP
30 AĞUSTOS 2008, CUMARTESİ


Basit bir typecast derleyici ne demek istediğini bilir bu durumda sağlayacaktır.

Foo((object)new object[]{ (object)"1", (object)"2" }));

Bir dizi nesne bir alt türü, bu işe yarıyor. Biraz garip bir çözüm olsa da, kabul ediyorum.

Düzenleme: Oops, benim örnek kod/.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cosmicrocketman

    cosmicrocket

    17 NİSAN 2006
  • kourtneyannmakeup

    kourtneyannm

    19 ŞUBAT 2012
  • Ralph Phillips

    Ralph Philli

    5 Aralık 2006