• C# 如何查看源程序的IL代码


     1、打开microsoft  visual  studio  2008  /  visual  studio  tools /  visual  studio  2008 命令提示  ,并输入ildasm 。如下图所示:

    2、按enter键,打开IL DASM 窗口,如下图所示:

    3、单击 文件 / 打开,打开编译好的.exe文件,即可查看该代码的IL代码

    例如:通过visual  studio  2008 命令提示 查看如下源程序的IL代码。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace BubbleSort
    {
       class BubbleSort1
        {//升序排序,每一趟都将最大的一个数放在最后
            public static void BubbleSort(int[] items)
            {
                int i, j, temp;
                if (items == null)
                    return;
                for (i = items.Length - 1; i >= 0; i++)
                    for (j=1;j<=i;j++)
                        if (items[j - 1] > items[j])
                        {
                            temp = items[j - 1];
                            items[j - 1] = items[j];
                            items[j] = temp;
                        }
             }
        }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace BubbleSort
    {
        class BubbleSort2
        {
            public enum SortType
            {
                Ascending,
                Descending
            }
            public static void BubbleSort(int[] items, SortType sortOrder)
            {
                int i, j, temp;
                if (items == null)
                    return;
                for (i = items.Length - 1; i >= 0; i++)
                {
                    for (j = 1; j <= i; j++)
                    {
                        switch (sortOrder)
                        {
                            case SortType.Ascending:
                                if (items[j - 1] > items[j])
                                {
                                    temp = items[j - 1];
                                    items[j - 1] = items[j];
                                    items[j] = temp;

                                }
                                break;
                            case SortType.Descending:
                                if (items[j - 1] < items[j])
                                {
                                    temp = items[j - 1];
                                    items[j - 1] = items[j];
                                    items[j] = temp;
                                }
                                break;
                        }

                    }
                }
            }
        }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace BubbleSort
    {
        public delegate bool ComparisonHandler (int first,int second);//委托类型的声明
        class BubbleSort3
        {
            public static bool GreaterThan(int first, int second)
            {//升序排序
                return first > second;
            }
            public static bool LessThan(int first, int second)
            {//降序排序
                return first < second;
            }
            public static bool AlphabeticalGreaterThan(int first, int second)
            {//按照字母表排序。a.CompareTo(b):若a>b 返回值小于0, a<b返回值大于0,
                //a=b返回值等于0
                int comparison;
                comparison = (first.ToString().CompareTo(second.ToString()));
                return comparison > 0;
            }
            public static void BubbleSort(int[] items, ComparisonHandler comparisonMethod)
            {
                int i, j, temp;
                if (items == null)
                    return;
                if (comparisonMethod == null)
                    throw new ArgumentNullException("comparisonMethod");
                for (i = items.Length - 1; i >= 0; i--)
                {
                    for(j=1;j<=i;j++)
                        if (comparisonMethod(items[j - 1], items[j]))
                        {
                            temp = items[j - 1];
                            items[j - 1] = items[j];
                            items[j] = temp;
                        }
                }
            }
        }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using BubbleSort;

    namespace BubbleSort
    {
        class Program
        {
            static void Main(string[] args)
            {
                int intcount;
                Console.WriteLine("请输入待排序的整数序列的个数:");
                intcount = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("请输入待排序的整数序列:");
                int[] items = new int[intcount];
                for (int i = 0; i < intcount; i++)
                {
                    items[i]=Convert .ToInt32 (  Console.ReadLine());
                   
                 }

                ComparisonHandler comparisonMethod = BubbleSort3.GreaterThan;
                BubbleSort3.BubbleSort(items, comparisonMethod);
                Console.WriteLine("调用类BubbleSort3中的排序方法排序后的整数序列为:");
                for(int i=0;i<intcount;i++)
                {
                    Console.Write(items[i]);
                    Console.Write("   ");

                }


            }
        }
    }

    以上程序的IL代码:

  • 相关阅读:
    GPS授时服务器(卫星同步时钟)科普小知识
    GPS和北斗卫星授时技术在时频领域的应用和发展
    NTP时间同步服务器(NTP时间服务器)在北京邮电大学的应用案例
    北斗时钟源(GPS网络时钟源)在校园网络应用
    NTP时钟源(GPS时间源)介绍与分析 安徽京准电子科技
    搭建ntp时间服务器并配置集群自动时钟同步
    GPS北斗网络时间源在内网域控制器上的设置方法
    肺炎疫情过后最想干的几件事
    提升苏州城市地位的几个建议
    江苏省如要打造一线城市,很简单!
  • 原文地址:https://www.cnblogs.com/mingxuantongxue/p/3821147.html
Copyright © 2020-2023  润新知