gpt4 book ai didi

c# - c# 中是否有一些用于高级元编程的行业 "standard"?

转载 作者:行者123 更新时间:2023-12-05 00:55:50 24 4
gpt4 key购买 nike

在各种项目中,我时不时会遇到 C# 项目中无法用泛型解决的元编程情况,并且将受益于更强大的元编程工具。我通常采用的解决方案是解决反射问题、使用 C++/cli 或引入自定义 xml/xslt 编译器步骤。

这是否反射(reflect)了 C# 社区普遍采用的方法,或者是否存在我不知道的有值(value)的方法,例如广泛使用的第 3 方预处理器?

我不是在寻求产品推荐,我是在询问针对这个常见问题的既定通用解决方案。 “不,没有”可能是有效且正确的答案。

最佳答案

这是一个公认的差距,多年来经常被搁置,因为 .NET 具有非常良好的运行时反射/发射 API,允许运行时元编程解决方案;但是,这有多个问题,包括:

  1. 复杂性
  2. 启动时间
  3. 安全隐患
  4. 并非在所有情况下都有效(某些运行时/平台禁止运行时发出)
  5. IL 链接器删除“未使用”代码的问题(因为在构建时没有任何东西触及这些 API,但在运行时它们通过运行时反射使用/发射)

正因为如此,在 C# 9 的时间范围内(但不是特定于 C# 9),“生成器”看起来最终会成为“事物”。这提供了一个基于 Roslyn 的构建时元编程层,该层可以以类似于当今第 3 方库发布“分析器”的方式进行扩展(生成器和分析器基本相似)。

它可能是您正在寻找的“行业标准”,但它还处于起步阶段。 Intro post, from April 2020 .

关于c# - c# 中是否有一些用于高级元编程的行业 "standard"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63409675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com