SORU
2 EYLÜL 2009, ÇARŞAMBA


Kullanamazsınız veya lambda ifadeleri ref parametresi

Neden lambda ifade ref veya bir parametre kullanabilir mi?

Bu hatayı bugün geldim ve geçici bir çözüm buldum ama yine de bu, bir derleme zamanı hatası neden merak ettim.

Burada basit bir örnek:

    private void Foo()
    {
        int value;
        Bar(out value);
    }

    private void Bar(out int value)
    {
        value = 3;
        int[] array = {1, 2, 3, 4, 5};
        int newValue = array.Where(a => a == value).First();
    }

CEVAP
2 EYLÜL 2009, ÇARŞAMBA


Lambda onlar yakalamak değişkenlerin yaşam boyu değişen görünümü var. Örneğin aşağıdaki lambda ifade parametre p1 neden olurcanlıdaha geçerli bir yöntem değer yöntem sonra erişilebilir olarak daha Kare Kare yığını üzerinde

Func<int> Example(int p1) {
  return () => p1;
}

Yakalanan değişkenlerin başka bir özelliği değişken değişiklikler de lambda ifadesi dışında görünür. Örneğin aşağıdaki 42 yazdırır

void Example2(int p1) {
  Action del = () => { p1 = 42; }
  del();
  Console.WriteLine(p1);
}

Bu iki özellik aşağıdaki şekilde bir ref parametresi karşısında sinek olan etkileri belirli bir dizi üretmek

  • ref parametreleri sabit bir ömür boyu olabilir. Bir işlev için bir ref parametresi yerel bir değişken geçirmeden düşünün.
  • Lambda yan etkileri ref parametresi kendisini görünür olması gerekir. Hem arayanın yöntemi içinde.

Bunlar biraz uyumsuz özellikleri ve lambda ifadeleri izin verilmeyen nedenlerinden biridir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Android Central

    Android Cent

    13 Kasım 2008
  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006