4、C 开发全解析:从程序运行到语法运用

C# 开发全解析:从程序运行到语法运用

1. C# 程序的运行与程序集处理

当 C# 可执行文件启动时,公共语言运行时(CLR)会加载程序集并开始执行入口点方法。在此之前,CLR 必须对入口点方法进行即时(JIT)编译。在这个阶段,CLR 可能需要解析一些外部引用才能进行 JIT 编译。例如,如果 Main 方法创建了一个名为 Employee 的类的实例,CLR 必须找到并加载包含 Employee 类型的程序集,JIT 编译器才能继续工作。

CLR 的一个重要特性是按需加载程序集。如果有一个提供打印文档方法的类型,它位于与主应用程序不同的程序集中,而应用程序从未使用该依赖项,那么这个单独的程序集就不会被加载。这可以避免应用程序的工作集不必要地增大。因此,在设计应用程序时,将不常用的功能分离到单独的程序集中是很有意义的,这样 CLR 只在需要时加载它们。减少应用程序的工作集可以加快启动时间,并缩小运行中应用程序的内存占用。关键在于将代码划分为内聚的单元,即程序集。如果在公共代码路径中执行的代码分散在各个程序集中,创建多程序集应用程序就没有意义,因为会失去多程序集的优势。

2. 程序集的命名

程序集主要有两种命名方式:
- 强命名(完全命名) :程序集的名称由四部分组成:短程序集名称、版本号、ISO 格式的区域标识符和哈希令牌。如果一个程序集使用这四部分命名,则被认为是强命名的。
- 部分命名 :这种程序集的名称缺少强命名程序集中的一些细节。

要了解程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值