Autor Beitrag
noiiZeee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Do 25.02.21 18:48 
Hi Leute!
Stecke in Schwierigkeiten und hoffe hier auf Antworten zu stoßen nachdem ich trotz stundenlanger Recherche nichts im Web gefunden habe!
Für eine Aufgabe soll ich einen Algorithmus, der mir in Pseudocode zur Verfügung gestellt wurde, in C# implementieren.
Ebenso wurde mir der "Main-Code" also wie der Algorithmus aufgerufen werden soll bereitgestellt.
Ich bin mit dem Algorithmus soweit fertig stehe aber nun vor dem Problem, dass in diesem Hauptcode die Ausgabe folgendermaßen erfolgen soll:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
int[] werte = {wert1, wert2, wert3, usw.}
Algorithmus(werte.Length, werte)

string[] woerter = {wort1, wort2, wort3, usw.}
Algorithmus(woerter.Length, woerter)

Wie man unschwer erkennen kann, soll ich mit dem Algorithmus gleichzeitig string[] und int[] aufrufen, kann den Algorithmus aber entweder nur in int oder string schreiben.
Hat da jemand eine Idee wie man dieses Problem lösen kann?

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Do 25.02.21 20:04 
Du kannst einfach 2 Methoden mit gleichem Namen schreiben.
Solange diese sich in den Parameter typen (oder Anzahl) ausreichend unterscheiden, wählt der Compiler einfach die richtige aus. (Kann er das nicht, bekommst du i.d.R. eine gute Fehlermeldung)

Alternativ ginge es auch so, falls du mit Generics anfangen möchtest:
ausblenden C#-Quelltext
1:
2:
3:
4:
  public static object Algorithmus<T>(int length, T[] array)
  {
    
  }

Für diesen Beitrag haben gedankt: noiiZeee
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 25.02.21 20:36 
Üblicherweise steckt in der genauen Aufgabenstellung die Lösung irgendwo versteckt :wink:

Also was für ein Algorithmus soll das sein? Dann ergibt sich für mich vielleicht auch warum man die Länge extra übergeben soll.

Für diesen Beitrag haben gedankt: noiiZeee
noiiZeee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Do 25.02.21 21:23 
user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Du kannst einfach 2 Methoden mit gleichem Namen schreiben.
Solange diese sich in den Parameter typen (oder Anzahl) ausreichend unterscheiden, wählt der Compiler einfach die richtige aus. (Kann er das nicht, bekommst du i.d.R. eine gute Fehlermeldung)

Alternativ ginge es auch so, falls du mit Generics anfangen möchtest:
ausblenden C#-Quelltext
1:
2:
3:
4:
  public static object Algorithmus<T>(int length, T[] array)
  {
    
  }


Vielen Dank für deine schnelle Antwort! Sowas in der Art hab ich mir schon gedacht, wollte es aber nicht machen, da es meiner Meinung nach nicht wirklich schön programmiert ist. Hab jetzt trotzdem alles mal doppelt geschrieben und es funktioniert. Deshalb lass ich das alles jetzt auch so. Danke für deine bzw. eure Hilfe :D