Autor Beitrag
Domi2k8
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 27.12.09 14:28 
Ich weiss nicht ob das den Richtlinien entspricht jedoch wollte ich nun meine Lösung zu meinem Eigenen Problem (www.c-sharp-forum.de/viewtopic.php?t=96727) Also meine Lösung dazu:

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:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
using System;
using System.Collections.Generic;
using System.Text;
//using Person;

namespace dSudGPerson
{
    /// <summary>
    /// Person
    /// </summary>
    /// <para>
    /// Die Klasse Person ist ein Stempel für verschiedene Personen
    /// Es gibt eine Methode "Equals" in der wird der Nachnamen der
    /// Person a mit dem Nachnamen der Person b vergliechen und ein
    /// boolscher Wert zurückgeliefert.
    /// </para>
    class Person
    {
        /// <summary>
        /// Nachname Attribut
        /// </summary>
        private string nName;

        /// <summary>
        /// Vorname Attribut
        /// </summary>
        private string vName;

        /// <summary>
        /// Telefonnummer Attribut
        /// </summary>
        private string telNr;

        /// <summary>
        /// Personenliste
        /// </summary>
        public static List<Person> personenliste = new List<Person>();

        /// <summary>
        /// Namensliste
        /// </summary>
        public static List<string> namensliste = new List<string>();

        /// <summary>
        /// Create
        /// </summary>
        /// <para>
        /// Fügt die Person hinzu FALLS der name noch nicht vorhanden ist oder die Liste leer ist!
        /// Ansonsten Fehlermeldung
        /// </para>
        /// <param name="vName">Vorname</param>
        /// <param name="nName">Nachname</param>
        /// <param name="telNr">Telefonnummer</param>
        public static void create(string vName, string nName, string telNr)
        {
            if (namensliste == null)
            {
                Person hilf = new Person(vName, nName, telNr);
                namensliste.Add(nName);
                personenliste.Add(hilf);
            }
            else
            {
                if (!namensliste.Contains(nName))
                {
                    Person hilf = new Person(vName, nName, telNr);
                    namensliste.Add(nName);
                    personenliste.Add(hilf);
                }
                else
                {
                    Console.WriteLine("Name nicht mehr zur Verfügung!");
                }
            }
        }   
        

        /// <summary>
        /// Gesperrter Konstruktor für die Klasse Person
        /// </summary>
        /// <param name="vName">Vorname</param>
        /// <param name="nName">Nachname</param>
        /// <param name="telNr">Telefonnummer</param>
        private Person(string vName, string nName, string telNr)
        {
            SetNName(nName);
            SetVName(vName);
            SetTelNr(telNr);
        }

        /// <summary>
        /// Setter für den Nachnamen
        /// </summary>
        /// <param name="nName">Nachname</param>
        public void SetNName(string nName)
        {
            this.nName = nName;
        }
        /// <summary>
        /// Getter für den Nachnamen
        /// </summary>
        /// <returns>Gibt den Nachnamen zurück</returns>
        public string GetNName()
        {
            return nName;
        }

        /// <summary>
        /// Setter für den Vornamen
        /// </summary>
        /// <param name="vName">Vorname</param>
        public void SetVName(string vName)
        {
            this.vName = vName;
        }
        /// <summary>
        /// Getter für den Vornamen
        /// </summary>
        /// <returns>Gibt den Vornamen zurück</returns>
        public string GetVName()
        {
            return vName;
        }

        /// <summary>
        /// Setter für die Telefonnummer
        /// </summary>
        /// <param name="telNr">Telefonnummer</param>
        public void SetTelNr(string telNr)
        {
            this.telNr = telNr;
        }
        /// <summary>
        /// Getter für die Telefonnummer
        /// </summary>
        /// <returns>Gibt die Telefonnummer zurück</returns>
        public string GetTelNr()
        {
            return telNr;
        }

        /// <summary>
        /// Equals
        /// </summary>
        /// <para>
        /// Vergleicht den Nachnamen eines Objekts mit dem Nachnamen eines anderen Objekts
        /// </para>
        /// <param name="person">Person</param>
        /// <returns>true falls der Nachname gleich ist, false falls der Nachname ungleich ist</returns>
        public bool Equals(Person person)
        {
            string nName = person.GetNName().ToUpper();
            if (this.nName.ToUpper() == nName)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// ToString Methode
        /// </summary>
        /// <para>
        /// Liefert einen formatierten String der Person
        /// </para>      
        /// <returns>"Personendanten: "vorname", "nachname", "telefonnummer"."</returns>
        public override string ToString()
        {
            return "Personendaten: " + vName + ", " + nName + ", " + telNr + ".";
        }
    }
}


So bin ich dieses Problem angegangen.

Einen kleinen Tester zu ihm hier:

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:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
using System;
using System.Collections.Generic;
using System.Text;
using dSudGPerson;

namespace dSudGTest
{
    /// <summary>
    /// Test
    /// </summary>
    /// <para>
    /// Testet die Klasse Person durch einen Tester der verschiedene Personen miteinander vergleicht.
    /// Falls True  --> "Gleichheit gegeben"
    /// Falls False --> "Gleichheit nicht gegeben"
    /// Um Codevermehrung zu verhindern wird dies in der Funktion Check durchgeführt!
    /// </para>
    class Test
    {
        /// <summary>
        /// Main
        /// </summary>
        /// <para>
        /// Test für den Benützer
        /// Erstellt mehrere Personen jedoch geschieht dies diesmal durch die Klassenmethode create!
        /// Check durch die Funktion Check die die Methode Equals aufruft!
        /// </para>
        /// <param name="args"></param>
        static void Main(string[] args)
        {

            Console.ForegroundColor = ConsoleColor.White;
            Person.create("Hans""Dorman""06645975676");                                         // Hans Dorman erstellen
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Hans Dorman erstellen: " + Person.personenliste[0].ToString());      // Ausgabe das Hans Dorman erstellt wurde
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("Hans Dorman noch einmal erstellen");                                 // Hans Dorman soll nochmal erstellt werden
            Console.ForegroundColor = ConsoleColor.Red;
            Person.create("Hans""Dorman""064567457378");                                        // Hans Dorman nochmal erstellen
                                                                                                    // Fehlermeldung da es nicht möglich ist
            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.White;
            Person.create("Franz""Ferdinand""01567531534");                                     // Franz Ferdinand erstellen
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Franz Ferdinand erstellen: " + Person.personenliste[1].ToString());  // Ausgabe das Franz Ferdinand erstellt wurde
            Console.WriteLine();

            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("Markus Ferdinand soll erstellt werden!");                            // Markus Ferdinand soll erstellt werden
            Console.ForegroundColor = ConsoleColor.Red;
            Person.create("Markus""Ferdinand""01675331535");                                    // Ferdinand ist vergeben daher:
                                                                                                    // Fehlermeldung das es nicht möglich ist
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine();
            Console.WriteLine("Hans Günther soll erstellt werden!");                                // Hans Günther soll erstellt werden
            Person.create("Hans""Günther""067453753735");                                       // Hans günter wird erstellt
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Hans Günther erstellen: " + Person.personenliste[2].ToString());     // Ausgabe das Franz Ferdinand erstellt wurde
            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine();
            Console.WriteLine("Vergleich zwischen...");
            Check(Person.personenliste[0], Person.personenliste[1]);                                // Vergleich zwischen Hans Dorman(0) und Franz Ferdinand(1)
            Console.WriteLine();

            Console.WriteLine("Vergleich zwischen...");
            Check(Person.personenliste[0], Person.personenliste[2]);                                // Vergleich zwischen Hans Dorman(0) und Hans Günter(2)      
        }

        /// <summary>
        /// Check
        /// </summary>
        /// <para>
        /// Um Codewiederholung zu vermeiden wurde die Funktion Check erstellt
        ///     1.  Farbe auf grau ändern
        ///     2.  Person 1 ausgeben
        ///     3.  Person 2 ausgeben
        ///     4.  Eine IF Verzweigung mit dem Inhalt "Parameter1.Equals(Parameter2)"
        ///                                            "Person1   .Equals(Person2   )"
        ///                                            "a         .Equals(b         )"
        /// Falls Equals return --> TRUE
        ///     5a. Farbe auf grün ändern
        ///     6a. "Gleicheit gegeben" ausgeben
        /// Falls Equals return --> FALSE
        ///     5b. Farbe auf rot ändern
        ///     6b. "Gleichehit nicht gegeben" ausgeben
        ///     7.  Farbe auf weiß ändern 
        /// </para>
        /// <param name="a">Person 1 zum vergleich durch Equals</param>
        /// <param name="b">Person 2 zum vergleich durch Equals</param>
        public static void Check(Person a, Person b)
        {
            Console.ForegroundColor = ConsoleColor.Gray;            // 1.
            Console.WriteLine("Person 1: " + a);                    // 2.
            Console.WriteLine("Person 2: " + b);                    // 3.
            if (a.Equals(b))                                        // 4.
            {
                Console.ForegroundColor = ConsoleColor.Green;       // 5a.
                Console.WriteLine("Gleichheit gegeben");            // 6a.
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;         // 5b.
                Console.WriteLine("Gleichheit nicht gegeben");      // 6b.
            }
            Console.ForegroundColor = ConsoleColor.White;           // 7
        }
    }
}


Ich hoffe es stimmt soweit ich war mir nicht ganz sicher da ich ja leider nicht da war als dictinary durchbesprochen wurde deswegen habe ich es auf meine Art gelöst.

Anmerkungen bitte einfach Posten

Vielen dank