c#菜鸟的几个问题~谢谢各位大侠啦~

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:14:59
1.能看类库中的源代码吗,比如DateTime类的源代码?
2.按照MSDN中的CLR执行模式C#源代码->托管代码(包括IL和元数据)->将托管代码合并成程序集->执行程序集代码->生成本地机器码 其中元数据描述代码的类型,成员和引用,那么元数据是存储在哪的呢?是以IL的形式存储在.exe文件中吗? 因为CLR要JIT即时编译 那么.exe文件中存储的是IL吗还是根本就是C#语言本身呢?
3.使用vs2005自带的反汇编工具能完全能解开.exe程序中的所有代码 那么使用C#编写的程序破译起来不是很简单?

学c#也有一段时间了 反过来想这些问题觉得有些困惑 大概就是.NetFramework的运行机制不太理解 书上的说的太泛泛 希望各位大虾指点迷津o(∩_∩)o

1. 微软已经开放了部分.net framework的源码,可以通过vs2008查看.对于使用vs2005,和没有开放的代码,可以用reflector查看,一般没有混淆
2. 元数据在exe文件中,exe里存储的是il, 这时候已经脱离了c#,用任何.net语言生成的il都是等价的
3. 没有经过任何处理的.net程序反编译后代码可读性是非常高,几乎跟源代码相同,visual studio附带了一个混淆器,可以对.net程序进行一些混淆,也有一些第三方软件做这个事情.但是无论如何都只是给破解增加难度而已,没有不可破解的程序

开放的可以,没开放的不可以

o(∩_∩)o...,你太天真了,微软已经把那些类都已经封装起来了,就是只能用不能改。微软的是商业的怎么可能会把代码开源那!!!