2011-05-02 28 views

cevap

28

Bu, olağan anlamda örtük bir dönüşüm değil - bir derleyici numarasıdır. Derleyici, bağlamdan hangisinin beklendiğini algılar ve sonra onu bir temsilci (sınıfınızda gizli bir yöntem) veya bir ifade olarak (System.Linq.Expressions.Expression yöntemini kullanarak ifadeyi yapılandıran bir kod yığını) derler.

Bu, diğer şeylerin yanı sıra, derleyici bir temsilci mi yoksa bir ifade mi ifade edeceğini bilmesi gerektiğinden, object veya var türünde bir değişkene doğrudan bir lambda ifadesi atayamamamanızın nedeni budur.

+1

Daha fazlası [burada] (http://msdn.microsoft.com/en-us/library/bb308966.aspx#csharp3.0overview_topic20). Destekleyici nesne ve var açıklama için –

+1

+1. –

+5

Son olarak, artı - hangi temsilci tipinin * (veya temsilci-ifade tipinin) kullanılacağına karar vermesi gerekir; Func <...> vb. hakkında özel bir şey yoktur. –

İlgili konular