Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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 :-)

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.

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 :-)

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.