1:你说的解释是什么意思?
如果是指编译与解释中的解释,那么不是。C#是编译执行的。
但从通常的意思上来说,C#代码的执行一般是由CLR“解释"IL代码执行的这没错。2:C#源代码是由系统(即windows)解释执行的 当执行C#源代码的时候 系统会监视整个的运行过程 当用户点击m_clearButton按钮时 系统检测到鼠标点击了m_clearButton按钮 系统会产生一个Click事件对象 然后系统将访问执行事件处理程序 并将事件源对象m_clearButton和Click事件对象传递给事件处理程序 我认为基本上来说你的这个理解不太对。
这句:"系统会监视整个的运行过程 ",在C#代码运行的过程中,不存在你说的这个外部“系统”在监视整个运行过程的可能性。
但是操作系统通过硬件和系统进程可以知道系统发生了什么事情:比如你说的鼠标点击。
当你点击鼠标时,操作系统一开始并不知道这个事情应该通知谁,它根据一个特定的数据结构查找到一个对应的窗口,把这个事件发给这个窗口的“消息队列”,这个窗口的消息队列负责处理这一个点击的消息。你说的事件对象类似于消息。

解决方案 »

  1.   

    1. C#-->IL-->机器码2. 看看windows消息机制。1楼基本已经解释了
      

  2.   

    楼主先搞清楚windows下程序是怎么运行的,再说.net下的情况吧!
    .net只不过是对API的又一层封装。        编译时          JIT
    C#代码-------->MSIL-------->机器码你说的窗口和按钮,这些都有一个HWND,由系统统一管理。
      

  3.   

       编译                        CLR 
    C#------>微软件中间语言(MSIL)-------------->平台专用代码
                                   JIT(即时编译器)
          
      

  4.   

    一个C#程序执行时的步骤。整个过程是这样的:
    1) 由C#编译器将源代码编译为中间语言
    2) 装入托管代码,这包括解决内存中的名字、表层类(laying out classes ),并且创建JIT编译所必需的存根。通过执行经常性校验,包括加强一些访问规则,类装载器同样也增强了安全性
    3) 用JITer将 IL转换成原始代码
    4) 装入元数据、校验类型安全和方法的完整性
    5) 垃圾收集(GC)和异常处理
    6) 描绘和查错服务
    7) 管理线程和上下文以及远程管理。
      

  5.   

    NET平台的 有个运行时,就是常住windows的进程吧应该是运行时,解释高效机器码:MSIL(MS中间语言:来源于所有NET平台支持的语言,C#,VB等)应用程序类型,有winform webformwinform,由框架驱动"消息循环" 你可以订阅"系统事件"打开一个什么都不做的窗口时,已经由NET框架启动了windows消息循环,只是这些消息循环没有响应,如果你订阅"系统事件"例如 Form.Load 或Button.Click等,那么就等于为某些你所指定的消息提供了,你所定义的响应."系统事件"依据window所设定的很多属性的变化,比如窗口尺寸,按钮按下,等这些都对应的是系统所监控的属性,--消息,这些消息变化会调用事件这种回调,如果实现了事件也就响应了消息.