Aracılığıyla paylaş


Lambda atma parametreleri

Not

Bu makale bir özellik belirtimidir. Belirtim, özelliğin tasarım belgesi olarak görev alır. Önerilen belirtim değişikliklerini ve özelliğin tasarımı ve geliştirilmesi sırasında gereken bilgileri içerir. Bu makaleler, önerilen belirtim değişiklikleri son haline getirilene ve geçerli ECMA belirtimine dahil edilene kadar yayımlanır.

Özellik belirtimi ile tamamlanan uygulama arasında bazı tutarsızlıklar olabilir. Bu farklılıklar,ilgili dil tasarım toplantısı (LDM) notlarında belirtilir.

Özellik belirtimlerini C# dil standardına benimseme işlemi hakkında daha fazla bilgi edinmek içinbelirtimleri makalesinde bulabilirsiniz.

Şampiyon sorunu: https://github.com/dotnet/csharplang/issues/111

Özet

Yoksayıcılar (_) lambdaların ve anonim metodların parametreleri olarak kullanılmasına izin verin. Örneğin:

  • lambdas: (_, _) => 0, (int _, int _) => 0
  • anonim yöntemler: delegate(int _, int _) { return 0; }

Motivasyon

Kullanılmayan parametrelerin adlandırılması gerekmez. Atmaların amacı açıktır, yani kullanılmamış/atılmışlardır.

Ayrıntılı tasarım

Yöntem parametreleri - §15.6.2_adlı birden fazla parametreye sahip bir lambda veya anonim yöntemin parametre listesinde bu parametreler atılır. Not: Tek bir parametrenin adı _ ise geriye dönük uyumluluk nedenleriyle normal bir parametredir.

Yok sayma parametreleri herhangi bir kapsama herhangi bir ad eklemez. Bunun, hiçbir _ (alt çizgi) adlarının gizlenmemesi gerektiği anlamına geldiğini unutmayın.

tr-TR: Basit adlar (§12.8.4) K sıfırsa ve simple_name bir blok içinde görünüyorsa ve bloğun(veya kapsayıcı bir bloğun) yerel değişken bildirim alanı (Bildirimler - §7.3) Iadlı bir yerel değişken, parametre (atma parametreleri hariç) veya sabit içeriyorsa, o zaman simple_name bu yerel değişkene, parametreye veya sabite başvurur ve değişken veya değer olarak sınıflandırılır.

Kapsamlar - §7.7 Atma parametreleri dışında, bir lambda_expression (§12.19) içinde bildirilen bir parametrenin kapsamı, o lambda_expression için anonim_fonksiyon_gövdesi'dir. Atma parametreleri dışında, bir anonim_metot_ifadesi (§12.19) içinde bildirilen bir parametrenin kapsamı, o anonim_metot_ifadesiiçin blok'tur.