Entwickler-Ecke
Basistechnologien - Wahrheitsmethode prüfen
Mr.y - Do 09.09.10 12:15
Titel: Wahrheitsmethode prüfen
Hallo :)
irgendwie stehe ich grad auf dem Schlauch...
Ich hab in einer Klasse eine bool-Methode:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| public bool KontoCheck(int intNummer) { try { if (Comparer.Equals(Check.Columns[0],"")) { return true; } else { return false; } } catch (Exception) { throw; } } |
Und dann rufe ich diese Methode auf will prüfen ob sie "true" ist
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| private void cmdWeiter_Click(object sender, EventArgs e) { try { Klasse mSecoundTrie = new Klasse(); if (mSecoundTrier.KontoCheck(txtNummer.Text)) {
} |
Und da sagt er mir:
C#-Quelltext
1:
| Eine implizite Konvertierung vom Typ "void" in "bool" ist nicht möglich. |
Wo hat er "void" ??? doch nicht vom dem Ereignis....
Brauche Hilfe :(
Danke
Necaremus - Do 09.09.10 12:33
sicher, dass er sagt void in bool und nicht string in int?
denn du hast da denke ich ne textBox "txtNummer", oder?
und du übergibts den .Text wert, der string ist(bzw sein müsste), an deine bool-funktion, die nen int will :o
wegen void/bool : kA, da seh ich eigentlich keine fehler...
Yogu - Do 09.09.10 12:34
Hallo,
dein Quelltext sieht ziemlich unübersichtlich aus - wie wäre es mit folgendem Code:
C#-Quelltext
1: 2: 3:
| public bool KontoCheck(int intNummer) { return Check.Columns[0] == ""; } |
Dann fällt auch gleich auf, dass der Parameter
intNumber gar nicht benutzt wird. Ist das beabsichtigt?
Mr.y hat folgendes geschrieben : |
C#-Quelltext 5:
| /* ... */ if (mSecoundTrier.KontoCheck(txtNummer.Text)) | |
Wenn
txtNummer eine
TextBox ist, dann ist
txtNummer.Text ein String und kein Integer, wie es von
KontoCheck als Parameter gefordert wird. Du solltest ihn mit
int.Parse oder
int.TryParse umwandeln.
Mr.y hat folgendes geschrieben : |
Und da sagt er mir: C#-Quelltext 1:
| Eine implizite Konvertierung vom Typ "void" in "bool" ist nicht möglich. | |
Wo genau tritt die Fehlermeldung auf? Tritt sie immer noch auf, wenn du den String wie oben beschrieben in einen Integer umwandelst?
Grüße,
Yogu
Mr.y - Do 09.09.10 13:41
Also ich hab es hinbekommen, trotzdem wundert mich das
Die Lösung ist so:
z.B public bool Funktion()
{.......}
und dann: if(Objekt.Funktion())
{......}
Wenn ich aber jetzt die Wahrheitsmethode eben mit diesem Parameter versehe, funktioniert dann die if-Abfrage nicht mehr
Ich weiss nicht warum....das ist eine boolsche Funktion, die einen "return true" wert hat, warum meckert er dann?
Hier könnt ihr nachschauen, dass diese if-prüfung nur ohne Parameter funktioniert...was für mir seltsam erscheint.
http://dotnetperls.com/bool-return
Yogu - Do 09.09.10 13:59
Bitte schreibe nicht immer nur davon, dass irgendetwas nicht funktioniert oder der Compiler "meckert". Der Compiler sagt dir,
wo etwas schief läuft und
was genau falsch ist. Wir wissen das nicht, also schreibe es bitte, am Besten mit den relevanten Codeausschnitten und den genauen Fehlermeldungen. Sonst können wir nur raten.
Was genau soll die Methode
KontoCheck denn machen? Name und Parameter deuten an, dass damit ein Konto mit einer bestimmten Kontonummer überprüft werden kann. In der Methode selbst wird aber nur abgefragt, ob eine Spalte einen leeren String enthält, von einer Nummer ist keine Rede mehr.
Der verlinkte Artikel behandelt eine spezielle Art von Methoden, nämlich solche mit Boolean als Rückgabewert und ohne Parameter. Das heißt nicht, dass keine anderen Methoden in if-Konstrukten aufgerufen werden.
Mr.y - Fr 10.09.10 08:07
Danke für eure Anteilnahme vielmals...
Das war ein Flüchtigkeitsfehler von mir und zwar hab ich eine falsche Variable bei der Prüfung eingesetzt.
public bool Funktion(int Nummer)
{.......}
und dann: if(Objekt.Funktion(falsche variable))
{......}
Irgendwie ist mir das gestern nicht aufgefallen :oops:
Hab einfach eine Public-int Variable erzeugt und eingesetzt, und es ging alles.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!