[英]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.