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

  • Krumme1996

    Krumme1996

    21 EYLÜL 2009
  • manadude21

    manadude21

    11 Mart 2008
  • Matt Steffanina

    Matt Steffan

    1 EYLÜL 2011