2010-01-11 13 views
5

Ho letto che la creazione di una classe sealed in C# è consigliabile in scenari ad alte prestazioni perché libera il compilatore per rendere certe ottimizzazioni (ad esempio, inlining getter di proprietà) che non sarebbe in grado di fare altrimenti. Lo stesso vale per NotInheritable in VB.NET? La mia ipotesi sarebbe sì, ma sto postando questa domanda nel caso in cui qualcun altro abbia già investigato e capiti di conoscere la risposta.Fare una classe NotInheritable in VB.NET offre le stesse (potenziali) ottimizzazioni del compilatore come sigillate in C#?

risposta

8

Sì, l'IL generato per sealed in C# è identico a NotInheritable in VB.NET e quelle potenziali ottimizzazioni verranno eseguite dal compilatore JIT che avverrà indipendentemente dalla lingua originale.

+0

Da ciò che stai dicendo (penso) che il compilatore JIT non è in grado di determinare se esiste una classe derivata in fase di runtime. Posso apprezzare che non è necessariamente semplice farlo (più per le classi pubbliche la cui gerarchia potrebbe attraversare gli assiemi), ma non è questo il genere di cose in cui il JIT dovrebbe migliorare rispetto all'ottimizzazione tradizionale in fase di compilazione? –

Problemi correlati