Entwickler-Ecke
C# - Die Sprache - Aus einer Methodeherraus ein Objekt erstellen
phill - Mo 09.06.08 13:42
Titel: Aus einer Methodeherraus ein Objekt erstellen
Hallo,
wie kann ich aus einer Methode herraus ein Objekt erstellen? Ich würde dem Objekt beim erstellen nämliich gerne direkt werte zuweisen.
Code wie ich es bisjetzt versucht habe:
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:
| public class Person { public string name; public char geschlecht; public int alter, id;
public Person() { } public void setName(string newName) { name = newName; } } class TestPerson { public void createPerson(string namevar, char geschlechtvar, int altervar,int idvar) { Person namevar = new Person(); name.geschlecht = geschlechtvar; name.alter = altervar; name.id = 1; } static void Main() { createPerson("alex","m",22,222);
System.Console.WriteLine(Peter.id.ToString()); System.Console.WriteLine(August.id.ToString()); System.Console.WriteLine(Nicole.id.ToString()); Peter.setName("Peter"); System.Console.WriteLine(Peter.name); System.Console.ReadLine(); } } |
Entweder ich bin auf dem völlig falschem weg oder ich hab was falsch gemacht..
Vielen dank schonmal im vorraus,
Philipp
JüTho - Mo 09.06.08 14:15
Hallo Philipp,
dazu gibt es mindestens zwei Möglichkeiten.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| public Person createPerson( string namevar, char geschlechtvar, int altervar,int idvar) { Person result = new Person(); result.name = namevar; result.geschlecht = geschlechtvar; result.alter = altervar; result.id = idvar; return result; }
Person Alex = createPerson("alex","m",22,222); |
Noch schöner ist ein passender Konstruktor, der die wichtigsten Eigenschaften vorbelegt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| public Person(string namevar, char geschlechtvar, int altervar,int idvar) { name = namevar; geschlecht = geschlechtvar; alter = altervar; id = idvar; }
Person Alex = new Person("alex","m",22,222); |
Nebenbei solltest Du Dich einmal kundig machen über den Unterschied zwischen internen Feldern (in der Regel private, nicht public) und öffentlichen Eigenschaften und die Schreibweise von Bezeichnern: private überwiegend mit Kleinbuchstaben anfangen, public mit Großbuchstaben. Eine Einführung findest Du z.B. im
OpenBook C# [
http://www.galileocomputing.de/openbook/csharp/].
Jürgen
phill - Mo 09.06.08 15:44
Herzlichen dank!
Ich habe mich für die zweite Varinte entschieden, da ich diesen Konstruktor Teil ja schon im Code hatte nur nicht draufgekommen bin das man damit ganz einfach dem Objekt werte beim erstellen zuweißen kann.
Viele Grüße und nochmals danke.
Philipp
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!