在VB.NET中使类不可继承是否提供了与在C#中密封的相同(潜在)编译器优化?

在VB.NET中使类不可继承是否提供了与在C#中密封的相同(潜在)编译器优化?,c#,vb.net,performance,optimization,compiler-construction,C#,Vb.net,Performance,Optimization,Compiler Construction,我曾读到,在高性能场景中,在C#中创建一个类sealed,这是可取的,因为它可以让编译器自由地进行某些优化(例如,内联属性getter),否则它将无法进行这些优化。VB.NET中的notheritable是否也是如此?我的猜测是肯定的,但我会发布这个问题,以防其他人已经调查过,并且碰巧知道答案。是的,在C#中为sealed生成的IL与VB.NET中的NotInheritable相同,这些潜在的优化将由JIT编译器完成,而不管原始语言是什么。这是您所说的(我想)JIT编译器无法确定在运行时是否存在

我曾读到,在高性能场景中,在C#中创建一个类
sealed
,这是可取的,因为它可以让编译器自由地进行某些优化(例如,内联属性getter),否则它将无法进行这些优化。VB.NET中的
notheritable
是否也是如此?我的猜测是肯定的,但我会发布这个问题,以防其他人已经调查过,并且碰巧知道答案。

是的,在C#中为
sealed
生成的IL与VB.NET中的
NotInheritable
相同,这些潜在的优化将由JIT编译器完成,而不管原始语言是什么。

这是您所说的(我想)JIT编译器无法确定在运行时是否存在派生类。我可以理解,解决这个问题并不一定很简单(对于层次结构可能跨程序集的公共类来说更是如此),但这不是JIT应该比传统编译时优化更好的事情吗?