Veröffentlicht 28. Juli 201015 j Hi, @all! Ich habe in der Vergangenheit unterschiedliche Deklarations-Möglichkeiten gesehen. Es geht mir hier nicht um den "bw" an sich, sondern nur um die unterschiedlichen Deklarationen. Die ersten beiden Möglichkeiten sind für mich "identisch". Ist die dritte Schreibweise nur eine verkürzte? Oder gibt es irgendwelche Unterschiede? Geschwindigkeit? Evtl. Speicherbedarf? ...? Imports System.ComponentModel Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Dim bw As BackgroundWorker = New BackgroundWorker 'Dim bw As BackgroundWorker 'bw = New BackgroundWorker 'Dim bw As New BackgroundWorker End Sub End Class
28. Juli 201015 j Moin, Bei den ersten beiden Varianten gibst Du den Zieltyp explizit an. Bei der dritten Variante erkennt der Compiler den Typ zur Laufzeit. (Sollte ab dem .NET 3.0 möglich sein) Ich habe gelernt, dass man Objekte explizit deklarieren (Interface oder Datentyp) soll, wenn man den Typ zur Entwurfszeit kennt. Ob das wirklich Performance bringt, wage ich zu bezweifeln. Dafür sind heutige Rechner zu schnell :-)
28. Juli 201015 j Bei der dritten Variante erkennt der Compiler den Typ zur Laufzeit. (Sollte ab dem .NET 3.0 möglich sein) Funktioniert aber, wenn ich mich nicht Irre, schon seit .Net 1.0. Ich denke das ist einfach eine Kurzschreibweise aber der kompilierte IL-Code wird wahrscheinlich genauso aussehen wie der der ersten Variante.
28. Juli 201015 j Funktioniert aber, wenn ich mich nicht Irre, schon seit .Net 1.0. Ich denke das ist einfach eine Kurzschreibweise aber der kompilierte IL-Code wird wahrscheinlich genauso aussehen wie der der ersten Variante. Ok, ich komme aus der C#-Ecke, hatte mich da jetzt an dem var-Typ orientiert :-)
28. Juli 201015 j Oder gibt es irgendwelche Unterschiede? Geschwindigkeit? Evtl. Speicherbedarf? ...? Der einzige Unterschied ist die Schreibweise beim Code erstellen (und die Lesbarkeit). Nach dem Kompilieren sollten alle drei Varianten gleich "optimiert" sein. Mach doch einfach mal nen Selbstversuch mit allen drei Varianten und untersuche die erstellte Assembly mit dem "Reflector", dann siehst Du was der Compiler aus Deinem Code gemacht hat. Eventuell siehst Du noch interessante Unterschiede wenn Du Deine Assembly unterschiedlich optimieren lässt (Debug / Release usw)
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.