即使是原型編譯器,我也找不到System.Runtime.CompilerServices.DiscardableAttribute
的實際用法。任何見解?謝謝。什麼是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可能會跳過它(因爲這個類永遠不會被使用)。
非常感謝,說實話我跳躍的抖動可以「內聯」下面的助手類:[Discardable] class AtomicRead:IDisposable { 私有隻讀ReaderWriterLock _lock; internal AtomicRead(ReaderWriterLock @lock) { _lock = @lock; _lock.AcquireReaderLock(Timeout.Infinite); () } void IDisposable.Dispose() { _lock.ReleaseReaderLock(); } } - OMG>我該怎麼做
- 1. 什麼是用於
- 2. 什麼是+ =用於?
- 3. 什麼是用於
- 4. 什麼是(;;)用於?
- 5. 什麼是用於
- 6. 什麼是用於
- 7. enCapsa - 它是什麼和用於什麼?
- 8. 什麼是com.itextpdf.test。** - 用於什麼類?
- 9. 什麼是applescript,它用於什麼?
- 10. 究竟是什麼ObjectFactory是什麼,它用於什麼?
- 11. 什麼是sys/user.h用於?
- 12. 什麼是用於swarminject?
- 13. 什麼是[super awakeFromNib];用於?
- 14. 什麼是iframe用於?
- 15. 什麼是Switch類用於?
- 16. 什麼是Adapter.getItem()用於?
- 17. 什麼是HAVE_PSI_INTERFACE宏用於?
- 18. 什麼是_references.js用於?
- 19. 什麼是robots.txt.dist用於?
- 20. 什麼是CookieAuthenticationOptions.AuthenticationType用於?
- 21. 什麼是#pragma用於?
- 22. 什麼是sync_extras_upload用於?
- 23. 什麼是SocketOptionName.ReuseAddress用於?
- 24. 什麼是&amp用於
- 25. 什麼是「+ id +」用於?
- 26. 什麼是IDataErrorInfo.Error用於?
- 27. 什麼是可用於SOAP
- 28. 什麼是maven.multiModuleProjectDirectory用於?
- 29. 什麼是'context.Wait'用於BotFramework
- 30. 什麼是ServicePointManager.FindServicePoint用於?
[documentation](http://msdn.microsoft.com/zh-cn/library/system.runtime.compilerservices.discardableattribute.aspx)解釋了備註部分中可能的用法。 – 2011-02-18 18:13:22