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

  • Austin Evans

    Austin Evans

    5 AĞUSTOS 2007
  • dcigs

    dcigs

    9 EYLÜL 2006
  • TeeMayneTV

    TeeMayneTV

    27 Kasım 2010