我想知道我的代码是否可以内联。 我找到了一种方法,这是:
Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod()的名称。);
但我不确定应该怎么告诉我。 如果我在这上面使用它:
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static ImageCodecInfo GetEncoderInfo(ImageFormat format)
{
Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name);
return ImageCodecInfo.GetImageEncoders().ToList().Find(delegate(ImageCodecInfo codec)
{
return codec.FormatID == format.Guid;
});
}
如果内联的话,控制台想要写什么? 根据我的理解,它应该写出调用者的名字,例如:
Private void Caller()
{
ImageCodecInfo GetEncoderInfo(bmpFormat)
}
然后,控制台将写入来电。
这是对的吗? 如果是这样的话,那么我已经尝试过没有内容。
答案 0 :(得分:0)
GetCurrentMethod阻止内联(来源http://prdlxvm0001.codify.net/pipermail/ozdotnet/2011-March/009085.html)
请记住,内联是在JIT期间完成的,而不是编译。