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.

VB.net Konstruktoren

Empfohlene Antworten

Veröffentlicht

Hallo,

muss eine kurze hausarbeit anfertigen, und bin etwas überfordert bei einer Frage:

1. Wozu dient der Konstruktor?

2. Wie kann ich Konstruktoren überladen ?

3. Wie  stelle ich meinen Standardkonstruktor wieder her?

Aufgabe 1 und 2 sind mir ja noch geläufig, jedoch bin ich bei Aufgabe 3 etwas überfordert, ich könnte zwar einfach "sub new() end sub" eingeben, aber dies ist doch nicht wirklich sauber, oder?

Falls ihr gute Quellen für Frage 1 und 2 hättet wäre ich natürlich auch um diese dankbar, da die Hausarbeit bewertet werden soll und daher ein wohl größeres Ausmaß empfehlenswert ist.

mfg

Christian, 19, Kassel

In .NET ist es so, dass falls ein erweiterter Konstruktor der Standardkonstruktor überschrieben wird. (Was auch durchaus Sinn macht, denn manche Klassen brauchen einfach ein paar Daten um arbeiten zu können ;) )

Der implizite Standardkonstruktor existiert nur dann, wenn er nicht durch einen parameterlosen Konstruktor explizit überschrieben oder durch einen parametrisierten überladen wird.

Quelle: Buch (auch weitere Infos zu Konstruktoren)

Um ihn wieder herzustellen, ist deine Lösung richtig und sauber. Eine andere ist mir afaik nicht bekannt.

Mit freundlichen Grüßen,

Cadpax

Hallo,

Vielen Dank Cadpax.

ja, genau das ist nämlich das Problem, diese Lösung hat er uns schon gezeigt und meinte: "aber das geht noch sauberer". Und nun frage ich mich, was er will.

Naja ist ja wochenende, vllt. weiß ja noch jemand, wie es angeblich besser gehen soll :)

mfg

Christian, 19, Kassel

Was ist "sauber" beim Herstellen des Standardkonstruktors?

Hier die Lösung (meine persönliche Meinung):

Wenn der Standardkonstruktor New() überschrieben wird, ist er weg. Das bedeutet, man muss ihn erneut anlegen. Also ist Sub New() End Sub eine Lösung. Jetzt die eigentliche Antwort:

Als Zugriffsmodifizierer bei den lieben Konstruktoren kommen PUBLIC, FRIEND und PRIVATE in Frage. Der Standardkonstruktor aus der Systemklasse ist immer PUBLIC definiert. Das muss eigentlich nicht mit angegeben werden.

Da Du eine Hausarbeit anfertigen musst, vermute ich hinter deinem Namen einen Studenten oder Schüler. Und die müssen ja bekanntlich auch die Grundlagen und Hintergründe lernen :cool:

Die "saubere" Lösung ist Public Sub New() End Sub, obwohl es nichts anderes ist.

Nun aber zur Begründung. Du kannst natürlich auch FRIENDS oder PRIVATE setzen. Bei PRIVATE wird der Zugriff generell verhindert. Der Konstruktor kann außerhalb der Klasse nicht aufgerufen werden. Was macht das jetzt für einen Sinn :( Wofür dient jetzt der Konstruktor? Er verhindert, dass die Klasse mit dem Schlüsselwort NEW instanziert werden kann. Es gibt ja auch Klassen, die ohne Instanzierung eine gewisse Funktionalität haben können und auch nicht instanziert werden dürfen. "sauber" ist also ein Hinweis auf die Verwendung der Klasse bzw. des Konstruktors.

Aber so tief wird ja in Schule und Unis bestimmt nicht hineingestiegen. Habe gestern erst gehört, dass an einer Uni Delphi und Pascal unterrichtet wird :uli

gruß

korph

Hallo,

ja war für die schule. leider musste die hausarbeit bereits heute abgegeben werden. Daher kommt deine info leider zu spät für meine Hausarbeit, jedoch nicht zu spät um es mir zu merken :)

anscheinend wollte er es wohl so hören, aber so wie es scheint kam niemand da drauf (zum. viele meiner mitschüler nicht, da sie wohl auf eine google suche zum thema lediglich diesen beitrag von mir fanden)

Vielen Dank nochmals.

mfg

Christian, 19, Kassel

ps: pascal ist schon hart, jedoch denke ich sollte man delphi nicht so hinabstufen. die entwicklungsumgebung ist .net konform und aktuell, das was bei einigen anderen sprachen fehlt an entwicklungsumgebung, sinnvollen sprachaufbau sowie .net konformität hat delphi längst. Auch wenn es nicht die "modernste" Sprache ist, ist sie auch längst nicht die älteste und zu verachtenste, oder? Denke jedoch, dass sie für eine universität nicht wirklich geeignet ist, im Gegensatz zu FOS, HBFS, BG, BFS, BS und OG, wo ich denke dass diese sprache nicht fehl am platz wäre, wenn borland ein wenig mehr studentenunterstützung geben würde (was microsoft ja *leider* tut, und java /php u.a. nicht benötigen).

viele meiner mitschüler nicht, da sie wohl auf eine google suche zum thema lediglich diesen beitrag von mir fanden

DASs ist das Problem...

Aufgabenstellung = Google

etwas annäherndes Finden = Lösung haben

Lösung vortragen = enttäscht sein wenn fehlerhaft

Aber wir leben ja in einer google-Gesellschaft ;-)

Hallo,

ja. das ärgerliche war halt, dass man zu dem thema eigentl. nirgends etwas finden konnte. Ob das nun an Quellenmangel oder persönlicher Inkompetenz liegt vermag ich nicht zu sagen.

Zumindest war ich erleichtert, dass ich nicht der einzige war, der es nicht fand, und das obwohl ich 4 Bücher zu vb.net durchsucht habe.

mfg

Christian, 19, Kassel

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.