İki farklı makinelerde aşağıdaki programı çalıştırıyorum: .NET 4.5 ve Visual Studio 2012 ileStatik sınıftaki anonim yöntem statik değil midir? Nasıl çağırılır?
bir makinedestatic class Program
{
static void Main(string[] args)
{
Func<int> lambda =() => 5;
Console.WriteLine(lambda.GetMethodInfo().IsStatic);
Console.ReadLine();
}
}
, bu .NET Framework 4.6.2 ile başka birinde, "gerçek" yazdırır yüklü ve Visual Studio 2015 "false" yazdırır.
Anonim yöntemler statik bir bağlamda tanımlanmışlarsa statik olduklarını düşünmüştüm. Son çerçeve güncellemelerinde bu değişiklik (belgelenmiş bir şekilde) yapıldı mı?
Yapmam gereken şey, Expression.Call
'u lambda.GetMethodInfo()
üzerinde kullanmaktır ve statik olmayan durumda bu, lambda'nın tanımlandığı bir örneği gerektirir. lambda.GetMethodInfo().Invoke
kullanmak istesem de aynı sorunla karşılaşırdım.
Böyle bir örneği nasıl alabilirim?
Ama amacınız nedir? Beklenen sonuç nedir? –