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

  • 3biblecom

    3biblecom

    23 NİSAN 2011
  • Jared Busch

    Jared Busch

    25 Mayıs 2011
  • SellerDp

    SellerDp

    27 EKİM 2009