New() Methode mit Parametern?
Übersicht

![]() |
M0rgensternBetreff: New() Methode mit Parametern? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute,
Gibt es eine Möglichkeit, eine Klasse zu schreiben, deren New() Methode einen Parameter hat? Ich habe das nämlich ausprobiert und bekomme diesen Fehler: Zitat: Compile Error: Identifier 'psGivenMessage' not found
Undzwar in folgender Methode: BlitzMax: [AUSKLAPPEN] Method New(psGivenMessage:String) Wenn ich einfach mal den Parameter innerhalb der Methode auskommentiere (nicht im Kopf der Methode) dann bekomme ich, wenn ich den Konstruktor aufrufe, folgende Fehlermeldung: Zitat: Compile Error: Illegal subexpression for object cast undzwar in folgender Zeile:
BlitzMax: [AUSKLAPPEN] Throw New("In 'TQueue.(m)Dequeue()' the queue " + ToString() + " has no elements.") TInvalidOperationException Wobei er das TInvalidOperationException markiert. Ich gehe also einfach mal stark davon aus, dass es nicht geht. Wollte aber nochmal nachfragen, bevor ich das alles umschreibe und durch Create ersetze. Lg, M0rgenstern |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jop, da BMax keine Funktionsüberladung unterstützt und die new()-Methode ja schon definiert ist bleibt dir leider nix anderes übrig als auf eine Create-Funktion zurückzugreifen. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du könntest natürlich auch deine New Methode umbenennen z.B.
Method MyNew(psGivenMessage:String) und dann mit: Local Wasntyp:MeinTyp = New MeinTyp.MyNew( "blabla" ) aufrufen und fertig. |
||
Logic Gui Professional a Gui Designer for MaxGui |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wobei man glaub ich Klammern um das New Element setzten muss, damit man auf die Methode zurückgreifen kann ![]() BlitzMax: [AUSKLAPPEN] Local Wasntyp:MeinTyp = (New MeinTyp).MyNew( "blabla" ) Lg, Tobias |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, muss man nicht.
Ich verwende schon lange BlitzMax: [AUSKLAPPEN] MyType myvar = New MyType.Init( "FunnyName" ) und das geht einwandfrei. Das New hat halt einfach eine höhere Priorität und wird vorher ausgewertet, daher kein Problem. |
||
Blessed is the mind too small for doubt |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey.
Vielen Dank für die Antworten. Ich muss ehrlich sagen, dass ich nicht wirklich nen Unterschied zwischen einem normalen Konstruktor und einem BlitzMax: [AUSKLAPPEN] New TMyType.MyNew(Param) sehe. Aber es sieht irgendwie schicker aus.
Trotzdem muss MyNew Das Object selbst zurückgeben, als so aussehen: BlitzMax: [AUSKLAPPEN] Method MyNew:TMyType(param:Object) Denn sonst beschwert sich der compiler folgendermaßen: Zitat: Compile Error: Unable to convert from 'Int' to 'TInvalidOperationException'
Bei: BlitzMax: [AUSKLAPPEN] Local ex:TInvalidOperationException = New TInvalidOperationException.MyNew("In 'TQueue.(m)Dequeue()' the queue " + ToString() + " has no elements.") Oder habe ich einfach nur was falsch gemacht? Denn bei mir passiert das. Lg, M0rgenstern |
||
![]() |
Lobby |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, du hast es genau so gemacht, wie man es machen muss, wenn man es so machen will. Viel Spaß damit, denn nützlich ist es auf jeden Fall ![]() |
||
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ha.
Vielen Dank. Dann benutze ich in Zukunft die Create Funktionen nicht mehr. Finde das da schöner. Lg, M0rgenstern |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group