AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken C# Nicht alle Codepfade geben einen Wert zurück.

Nicht alle Codepfade geben einen Wert zurück.

Ein Thema von Luckie · begonnen am 2. Mär 2006 · letzter Beitrag vom 2. Mär 2006
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Nicht alle Codepfade geben einen Wert zurück.

  Alt 2. Mär 2006, 11:18
Datenbank: db4o • Zugriff über: db4o API
Ich habe folgende Klasse:
Code:
namespace Demo_db4o
{
    class Queries
    {
        private ObjectContainer oc;

        public Queries(ObjectContainer db)
        {
            oc = db;
        }

        public IList<Person> OlderThan(Int32 Alter)
        {
            IList<Person> personen = oc.Query<Person>(delegate(Person person)
            {
                return person.Alter > Alter;
            });
        }
    }
}
Dort gibt es die Methode OlderTahn, die mir eine Liste aller Personen zurückgibt die älter als ein bestimmtes Alter sind. Dies wird über ein Query realisiert. Jetzt sagt mir aber der Compiler:
Zitat:
Nicht alle Codepfade geben einen Wert zurück.
Klar, der hat gemerkt, dass wenn kein passender Datensatz gefunden wird, keine Rückgabe erfolgt.

Jetzt bin ich mir nicht so ganz sicher, ob das ein sprachliches Problem ist oder eher ein Datenbank Problem. Aber was auch immer es ist, wie löse ich das am besten?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Nicht alle Codepfade geben einen Wert zurück.

  Alt 2. Mär 2006, 11:41
Nachtrag

Ich habe es jetzt so gelöst:
Code:
        public IList<Person> OlderThan(Int32 Alter)
        {
            IList<Person> result;

            //IList<Person> personen = oc.Query<Person>(delegate(Person person)
            result = oc.Query<Person>(delegate(Person person)
            {               
                return person.Alter > Alter;              
            });
            return result;
        }
Ist dagegen was einzuwenden? Oder gibt es eine bessere Lösung?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#3

Re: Nicht alle Codepfade geben einen Wert zurück.

  Alt 2. Mär 2006, 12:09
Die Fehlermeldung war bzw. ist auf jeden Fall ein Sprachproblem, weil du mit dem benutzten "return" ja nur die IList gefüllt hast. Die Funktion selbst lieferte nichts zurück. Ich hatte beim Testen bspw. hiermit keine Probleme:
Code:
public IList<Person> OlderThan(int Alter)
{
   IList<Person> personen=
      oc.Query<Person> (delegate(Person person) { return person.Alter > Alter; });
   return personen;
}
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Nicht alle Codepfade geben einen Wert zurück.

  Alt 2. Mär 2006, 12:55
Jupp geht. Dank dir.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz