MethodImplOptions Enumeráció
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Olyan állandókat határoz meg, amelyek meghatározzák a metódus implementálásának részleteit.
Ez a felsorolás támogatja a tagértékek bitenkénti kombinációját.
public enum class MethodImplOptions
[System.Flags]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplOptions
[<System.Flags>]
type MethodImplOptions =
[<System.Flags>]
[<System.Serializable>]
type MethodImplOptions =
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplOptions =
Public Enum MethodImplOptions
- Öröklődés
- Attribútumok
Mezők
| Name | Érték | Description |
|---|---|---|
| Unmanaged | 4 | A metódus nem felügyelt kódban van implementálva. |
| NoInlining | 8 | A metódus nem ágyazható be. A inlining egy optimalizálás, amellyel a metódushívások a metódus törzsére cserélődnek. |
| ForwardRef | 16 | A metódus deklarálva van, de megvalósítása máshol történik. |
| Synchronized | 32 | A metódust egyszerre csak egy szál hajthatja végre. A statikus metódusok zárolják a típust, míg a példány metódusai zárolják a példányt. A példányfüggvényekben csak egy szál hajtható végre, és csak egy szál hajtható végre az osztály statikus függvényeiben. |
| NoOptimization | 64 | A metódust nem az igény szerinti (JIT) fordító vagy a natív kódgenerálás (lásd Ngen.exe) optimalizálja a lehetséges kódgenerálási problémák hibakeresésekor. |
| PreserveSig | 128 | A metódus-aláírás exportálása pontosan a deklarált módon történik. |
| AggressiveInlining | 256 | A metódust lehetőség szerint beágyazottnak kell lennie. Az attribútum szükségtelen használata csökkentheti a teljesítményt. Az attribútum implementálási korlátokat okozhat, amelyek lassabban generált kódot eredményeznek. Mindig mérje a teljesítményt, hogy biztosan hasznos legyen az attribútum alkalmazása. |
| AggressiveOptimization | 512 | A metódus olyan kódot tartalmaz, amelyet mindig teljesítményre kell optimalizálni. Ritkán célszerű ezt az attribútumot használni. Az attribútumot alkalmazó metódusok megkerülik a rétegzett fordítás első szintjét, ezért nem részesülnek a rétegzett fordításra támaszkodó optimalizálásokból. Ezek az optimalizálások közé tartozik a dinamikus PGO és az inicializált osztályokon alapuló optimalizálás. Az attribútum használata növelheti a memóriahasználatot is. Mindig mérje a teljesítményt, hogy biztosan hasznos legyen az attribútum alkalmazása. |
| SecurityMitigations | 1024 | Ez a tag jövőbeli használatra van fenntartva. A .NET Framework 4.8-ban vezették be. |
| InternalCall | 4096 | A hívás belső, azaz egy olyan metódust hív meg, amely a közös nyelvi futtatókörnyezetben van implementálva. |
| Async | 8192 |
Megjegyzések
Ez az enumerálás az MethodImplAttribute attribútummal együtt használatos.
A bitenkénti VAGY operátorral több MethodImplOptions értéket is megadhat.
Note
A nyilvános típusok esetében nem ajánlott a példány vagy a típus zárolása, mint a Synchronized jelölő esetében, mert a sajáttól eltérő kód zárolhatja a nyilvános típusok és példányok zárolását. Ez holtpontokat vagy más szinkronizálási problémákat okozhat.