C#执行问题

wangbo1204 2008-09-18 04:58:31
请问:
1,C#是由系统解释执行的吗 如windows
2,看看我的个人理解 请帮忙改正:
C#源代码是由系统(即windows)解释执行的 当执行C#源代码的时候 系统会监视整个的运行过程 当用户点击m_clearButton按钮时 系统检测到鼠标点击了m_clearButton按钮 系统会产生一个Click事件对象 然后系统将访问执行事件处理程序 并将事件源对象m_clearButton和Click事件对象传递给事件处理程序
谢谢
...全文
87 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ProjectDD 2008-09-18
  • 打赏
  • 举报
回复
NET平台的 有个运行时,就是常住windows的进程吧应该是

运行时,解释高效机器码:MSIL(MS中间语言:来源于所有NET平台支持的语言,C#,VB等)

应用程序类型,有winform webform

winform,由框架驱动"消息循环" 你可以订阅"系统事件"

打开一个什么都不做的窗口时,已经由NET框架启动了windows消息循环,只是这些消息循环

没有响应,如果你订阅"系统事件"例如 Form.Load 或Button.Click等,那么就等于为某些

你所指定的消息提供了,你所定义的响应.

"系统事件"依据window所设定的很多属性的变化,比如窗口尺寸,按钮按下,等这些都对应的是

系统所监控的属性,--消息,这些消息变化会调用事件这种回调,如果实现了事件也就响应了

消息.
liang4571231 2008-09-18
  • 打赏
  • 举报
回复
一个C#程序执行时的步骤。整个过程是这样的:
1) 由C#编译器将源代码编译为中间语言
2) 装入托管代码,这包括解决内存中的名字、表层类(laying out classes ),并且创建JIT编译所必需的存根。通过执行经常性校验,包括加强一些访问规则,类装载器同样也增强了安全性
3) 用JITer将 IL转换成原始代码
4) 装入元数据、校验类型安全和方法的完整性
5) 垃圾收集(GC)和异常处理
6) 描绘和查错服务
7) 管理线程和上下文以及远程管理。
酒浪子 2008-09-18
  • 打赏
  • 举报
回复
编译 CLR
C#------>微软件中间语言(MSIL)-------------->平台专用代码
JIT(即时编译器)
jiguixin 2008-09-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zzultc 的回复:]

        编译时          JIT
C#代码-------->MSIL-------->机器码

[/Quote]


zzultc 2008-09-18
  • 打赏
  • 举报
回复
楼主先搞清楚windows下程序是怎么运行的,再说.net下的情况吧!
.net只不过是对API的又一层封装。

编译时 JIT
C#代码-------->MSIL-------->机器码

你说的窗口和按钮,这些都有一个HWND,由系统统一管理。
JeffChung 2008-09-18
  • 打赏
  • 举报
回复
1. C#-->IL-->机器码

2. 看看windows消息机制。1楼基本已经解释了
brallow 2008-09-18
  • 打赏
  • 举报
回复
1:你说的解释是什么意思?
如果是指编译与解释中的解释,那么不是。C#是编译执行的。
但从通常的意思上来说,C#代码的执行一般是由CLR“解释"IL代码执行的这没错。

2:C#源代码是由系统(即windows)解释执行的 当执行C#源代码的时候 系统会监视整个的运行过程 当用户点击m_clearButton按钮时 系统检测到鼠标点击了m_clearButton按钮 系统会产生一个Click事件对象 然后系统将访问执行事件处理程序 并将事件源对象m_clearButton和Click事件对象传递给事件处理程序

我认为基本上来说你的这个理解不太对。
这句:"系统会监视整个的运行过程 ",在C#代码运行的过程中,不存在你说的这个外部“系统”在监视整个运行过程的可能性。
但是操作系统通过硬件和系统进程可以知道系统发生了什么事情:比如你说的鼠标点击。
当你点击鼠标时,操作系统一开始并不知道这个事情应该通知谁,它根据一个特定的数据结构查找到一个对应的窗口,把这个事件发给这个窗口的“消息队列”,这个窗口的消息队列负责处理这一个点击的消息。你说的事件对象类似于消息。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧