请问关于c的具体应用场景有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1058个文字,预计阅读时间需要5分钟。
作者:MarkKang出处:https://www.cnblogs.com/markkang/
1背景动机:关于模块或程序集初始化工作
作者:MarkKang
出处:www.cnblogs.com/markkang/
1 背景动机
关于模块或者程序集初始化工作一直是C#的一个痛点,微软内部外部都有大量的报告反应很多客户一直被这个问题困扰,这还不算没有统计上的客户。那么解决这个问题,还有基于什么样的考虑呢?
- 在库加载的时候,能以最小的开销、无需用户显式调用任何接口,使客户做一些期望的和一次性的初始化。
- 当前静态构造函数方法的一个最大的问题是运行时会对带有静态构造函数的类型做一些额外的检查。这是因为要决定静态构造函数是否需要被运行所必须的一步,但是这个又有着显著的开销影响。
- 使源代码生成器在不需要用户显式调用一些东西的情况下能运行一些全局的初始化逻辑。
2 详细设计
C# 9.0将模块初始化器设计为一个Attribute,用这个Attribute来修饰进行模块初始化逻辑的方法,就实现了模块初始化功能。
本文共计1058个文字,预计阅读时间需要5分钟。
作者:MarkKang出处:https://www.cnblogs.com/markkang/
1背景动机:关于模块或程序集初始化工作
作者:MarkKang
出处:www.cnblogs.com/markkang/
1 背景动机
关于模块或者程序集初始化工作一直是C#的一个痛点,微软内部外部都有大量的报告反应很多客户一直被这个问题困扰,这还不算没有统计上的客户。那么解决这个问题,还有基于什么样的考虑呢?
- 在库加载的时候,能以最小的开销、无需用户显式调用任何接口,使客户做一些期望的和一次性的初始化。
- 当前静态构造函数方法的一个最大的问题是运行时会对带有静态构造函数的类型做一些额外的检查。这是因为要决定静态构造函数是否需要被运行所必须的一步,但是这个又有着显著的开销影响。
- 使源代码生成器在不需要用户显式调用一些东西的情况下能运行一些全局的初始化逻辑。
2 详细设计
C# 9.0将模块初始化器设计为一个Attribute,用这个Attribute来修饰进行模块初始化逻辑的方法,就实现了模块初始化功能。

