如何知道我的代码是否内联?

时间:2013-08-22 16:50:03

标签: c#

我想知道我的代码是否可以内联。 我找到了一种方法,这是:

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)
 }

然后,控制台将写入来电。

这是对的吗? 如果是这样的话,那么我已经尝试过没有内容。

1 个答案:

答案 0 :(得分:0)

GetCurrentMethod阻止内联(来源http://prdlxvm0001.codify.net/pipermail/ozdotnet/2011-March/009085.html

请记住,内联是在JIT期间完成的,而不是编译。