gpt4 book ai didi

c# - DiscardableAttribute 有什么用?

转载 作者:太空宇宙 更新时间:2023-11-03 19:30:55 25 4
gpt4 key购买 nike

我找不到 System.Runtime.CompilerServices.DiscardableAttribute 的实际用途,即使是原型(prototype)编译器。有什么见解吗?谢谢。

最佳答案

举一个比文档所说的更具体的例子——你可以有一种语言支持静态方法调用的内联,这些调用使用一些特殊修饰符(来自静态类)进行标记:

static class Bar {
static inline void Foo(int a) { // Note fictional 'inline' modifier
return a + 10;
}
}

如果您有这样的类,那么您的任何其他代码片段都不会真正引用它。当你写:

int y = Bar.Foo(x);

编译器将其编译为:

int y = x + 10;

您需要在编译代码中保留 Bar 的定义,因为如果您从其他项目引用程序集,您希望看到它(然后调用 Foo 方法,编译器将只从该程序集中获取已编译的 IL。

但是,Bar 类永远不会在运行时使用(它只是为了保留代码,而不是实际执行它)。我想您可以将它标记为 Discardable 并且 JIT 可能会在为您的程序集生成 native 代码时跳过它(因为永远不会使用该类)。

关于c# - DiscardableAttribute 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5044945/

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