Wie kann ich in C# ein Array zurückgeben?

6 Antworten

Die Lösung wurde von Zhensplitter schon gepostet. Ich möchte nur noch einige grundlegende Dinge ergänzen. Es wird nämlich offensichtlich, dass du zuvor mit Java programmiert hast.

1) In C# ist die PascalCase Konvention. Methodennamen und Properties beginnen mit einem Großbuchstaben. Private Felder kannst du zudem mit einem führenden Unterstrich markieren (_name).

2) Solche Getter- und Setter-Methoden gehören für dich ab nun der Vergangenheit an. Nutze für den Namen ein Property:

private string _name;

public string Name
{
  get
  {
    return _name;
  }
  set
  {
    _name = value;
  }
}

Properties werden später von C# automatisch in die typischen Getter-/Setter-Methoden umgewandelt. Um Werte zu lesen oder zu setzen, kann man sie wie normale Variablen behandeln:

Name = "Hans";
Console.WriteLine(Name);

Mein gezeigtes Snippet lässt sich aber gleich noch weiter verkürzen, denn du nimmst ja keine konkreten Logiken beim Lesen/Schreiben vor (Filterung o.ä.). Das Backing Field (_name) kann C# implizit erstellen.

So reicht Folgendes aus:

public string Name { get; set; }

Lies auf dieser Seite mehr zu Properties.


ArchBattle 
Beitragsersteller
 07.02.2020, 23:40

cool, Dankeschön^^

0

Hier noch ein paar Tipps:

Warum hast du die Methoden get und Set Name?

Du kannst wie mit alter hier auch ne property benutzen. Insbesondere wenn du nichts anderes machst als den Wert direkt zu setzen.

Das get; und Set; bei älter z.b. kannst du implementieren.

Beispiel:

Private String _name="";

Public String Name {

Get{
Return _name;
}
Set{

_name= value;
}
};

Die Methode vorstellen. Ist so eigentlich unüblich. Klar. Die Person stellt sich vor. Aber für gewöhnlich implementiert man solche Dinge eher bei dem der diese Methode aufrufen würde. Aber ist in einer solchen Übung sicherlich nicht von Nöten.

Woher ich das weiß:Studium / Ausbildung – Bachelor

Naja, der Ergebnisdatentyp der Methode muss halt einfach korrekt sein. Das gilt immer - bei jeder Methode.

Willst Du ein Array liefern, muss das dann eben ein passender Array-Typ sein:

public string[] vorstellen() ...

Entsprechendes gibt übrigens auch der Compiler als Fehlermeldung aus.

bei

public string vorstellen

musst du nur

string[]

anstaat nur string hinschreiben

;)


ArchBattle 
Beitragsersteller
 07.02.2020, 22:35

Vielen Dank. Darauf wäre ich sonst nicht gekommen :D

0
FouLou  07.02.2020, 22:38
@ArchBattle

Der Compiler müsste dir eigentlich genau das sagen. Also das der Typ den du zurückgeben willst nicht dem Rückgabe Typ entspricht. (Schau dir die meldung Mal genau an.)

Auch das intellisense müsste dir in dem Falle sogar nen Vorschlag machen wie man das berichtigen kann.

0
ArchBattle 
Beitragsersteller
 07.02.2020, 22:42
@FouLou

stimmt ^^ danke daran habe nicht gedacht

0
FouLou  07.02.2020, 22:35

Genau das.

1

Ich glaube da verwendet man eher pointer oder nicht


ohwehohach  07.02.2020, 22:42

In C# gibt es (normalerweise) keine Pointer.

1
Isendrak  07.02.2020, 23:48
@Isomorphismus

Naja, wie er schon sagte: "Normalerweise".

Allerdings kann man (wenn es denn "unbedingt" sein muss) auch in C# mit Pointern hantieren.

Das ganze muss dann aber in einem mit dem Schlüsselwort "unsafe" gekennzeichneten Kontext passieren und in den Projekteinstellungen muss die entsprechende Option gesetzt sein.

0
FouLou  07.02.2020, 22:36

Nicht in C#.

0