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

  • Blendtec

    Blendtec

    30 EKİM 2006
  • Damien Hayes

    Damien Hayes

    11 Mart 2008
  • rtisticsdev

    rtisticsdev

    31 Mayıs 2012