我在兩個不同的機器上運行下面的程序:靜態類中的匿名方法是非靜態的?如何調用它?
static class Program
{
static void Main(string[] args)
{
Func<int> lambda =() => 5;
Console.WriteLine(lambda.GetMethodInfo().IsStatic);
Console.ReadLine();
}
}
在一臺機器,用.NET 4.5和Visual Studio 2012安裝在此打印「真」,在一個又一個,使用.NET框架4.6.2並在Visual Studio 2015中打印「false」。
我認爲匿名方法是靜態的,如果它們是在靜態上下文中定義的。在最近的一些框架更新期間是否發生了這種變化(以書面形式)?
我需要做的是在lambda.GetMethodInfo()
上使用Expression.Call
,而在非靜態情況下,這需要一個定義lambda的實例。 如果我想用lambda.GetMethodInfo().Invoke
我會面臨同樣的問題。
我怎樣才能得到這樣一個實例?
但是你的目標是什麼?預期的結果是什麼? –