簡體   English   中英

DiscardableAttribute的作用是什么?

[英]What is DiscardableAttribute used for?

我找不到System.Runtime.CompilerServices.DiscardableAttribute的實際用途,即使對於原型編譯器也是如此。 有見識嗎? 謝謝。

要給出比文檔所說的更具體的示例-您可以使用一種語言來支持內聯使用某些特殊修飾符(來自靜態類)標記的靜態方法調用:

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可以跳過它(因為該類將永遠不會使用)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM