Autor Beitrag
uyeda
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 20.09.16 22:48 
Hallo liebe Foren-Gemeinde,

ich bin heute ziemlich knatsche in der Birne, und finde einfach keinen schönen Weg dieses häßliche Gebilde besser zu ordnen oder umzustruktieren. Deswegen bin ich hier (neu angemeldet), und frage einfach mal kurz nach, wie ich diese Abfragen "schön" machen könnte.
Hier ist der Code:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
    Book XMLParse(XmlReader reader, string bookName, int iD)
    {
        Vector3 bookPosition = Vector3.zero;
        Quaternion rotation = Quaternion.identity;
        Vector3 bookMove = Vector3.zero;
        float timer = 0;
        bool goOn = true;


        // hier meine Problemzone
        if (goOn)
            goOn = reader.ReadToFollowing("bookPosition");
        if (goOn)
            goOn = ParseV3(reader, out bookPosition);
        if (goOn)
            goOn = reader.ReadToFollowing("rotation");
        if (goOn)
            goOn = ParseQ(reader, out rotation);
        if (goOn)
            goOn = reader.ReadToFollowing("bookMove");
        if (goOn)
            goOn = ParseV3(reader, out bookMove);
        if (goOn)
            goOn = reader.ReadToFollowing("timer");
        if (goOn)
        { 
            goOn = float.TryParse(reader.GetAttribute("t"), out timer);
            if(!goOn)
                Debug.LogError("Read Float " + reader.LocalName + " ... failure");
        }
        // Hier endet meine Problemzone (hoffentlich)

        Book ret = new Book (bookName, iD, bookPosition, rotation, bookMove, timer);

        if (!goOn)
            ret = null;

        return ret;
    }


Die Parsefunktionen parsen nur un geben 'nen Boolean zurück, ob es geklappt hat, bzw. speichern meine Werte in den out Wert.

Danke im voraus, wenn ihr helfen könnt. Mir reicht auch ein kurzer Strukturvorschlag, hauptsache ich fühle mich nicht mehr so dumm, was Struktur und Ordnung angeht.

Viele Grüße
Peter




PS: es ist mein erster Beitrag, ich hab auch schon gesucht, muss aber gestehen, dass ich nichts konkretes gefunden habe, leider. Wenn es schon eine Antwort auf ähnliche Fragen gibt, verlinkt sie mir bitte.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2261

Win 10
C# (VS 2019)
BeitragVerfasst: Di 20.09.16 23:00 
Hallo und :welcome:!

Müsste das nicht äquivalent zu sowas sein?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var goOn =    reader.ReadToFollowing("bookPosition")
           && ParseV3(reader, out bookPosition)
           && reader.ReadToFollowing("rotation")
           && ParseQ(reader, out rotation)
           && reader.ReadToFollowing("bookMove")
           && ParseV3(reader, out bookMove)
           && reader.ReadToFollowing("timer")
           && float.TryParse(reader.GetAttribute("t"), out timer);


Durch die Kurzschlussauswertung sollte das genau das tun, was Du bisher mit den if-Abfragen tust.

Grüße
Christian

//edit: Hm, nein, nicht ganz. Das mit dem Debug-Log bringt man nicht genauso darin unter :gruebel:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".