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
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.
Parametre adı yansıtan: C kötüye lambd...
C# Lambda ifadeleri: onları Neden kull...
PHP PDO İfadeleri parametre olarak tab...
Kullanarak lambda ifadeleri ile Varlık...
Lambda ifadeleri farklı çeteleler topl...