Parfois, je dois implémenter une interface ou hériter d'un virtual (MustInherit) que la méthode de base attend d'un objet, alors que je sais que la valeur que je vais passer sera toujours un entier, par exemple.Question de performance implicite VB
Quelle devrait être la meilleure performance des exemples ci-dessous:
Public Sub DoSomething(ByVal obj As Object)
'option 1:
Dim x As Integer = obj
'option 2:
Dim y = DirectCast(obj, Integer)
End Function
Considérations:
- Option 1: Pas de coulée mais est peut-être pas si bon, ça coûte moins de performance?
- Option 2: Coulée lorsque le type est connu, mais semble plus sûr.
Note: S'il vous plaît ne pas commenter avec « Pourquoi ne voudriez-vous mettre en œuvre de manière différente », etc., etc. Ma question est comment faire cela, je ne trouve pas un exemple de comment poser la question, ma question est juste quelle option devrait être les droits, et ce qui coûtera plus de performance.
Si vous prétendez implémenter l'interface, alors vous devriez être prêt à accepter n'importe quel objet. Sinon, vous n'implémentez pas vraiment l'interface. –
Encore une fois, j'ai dit que la chose de l'interface était juste une raison pour mettre ma question. – Shimmy
Et un exemple réel est lorsque vous remplacez une classe et que vous le marquez NotInheritable (sealed). Un autre bon exemple est lorsque vous implémentez IValueConversion. – Shimmy