Autor Beitrag
C#David
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Di 05.06.18 09:41 
Hey Leute,

ich möchte ein zweidimensionales/dreidimensionales Array in einer Get-/Set-Porperty verwenden. Egal wie ich dieses in den Return-Teil anspreche, es kommt immer eine Fehlermeldung. Ist das überhaupt möglich, wenn ja wie? Vielen Dank!

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
public string [,,] information = new string [50,1,1];

public string[,,] Information
{
   get {return information; }           
}


Fehler: Mehrdeutigkeit zwischen "Test.Functionality.information". und "Test.Functionality.information(int,int,string)".
Auch wenn ich das Array im Return-Teil mit "get {return information(,,)}" anspreche, kommt die Fehlermeldung, dass ein Argument fehlt??
ausblenden C#-Quelltext
1:
2:
3:
4:
public string[,,] Information
{
   get {return information(,,); }           
}


Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 05.06.18 09:59 
Du hast noch eine Methode gleichen Namens in der Klasse definiert.
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Di 05.06.18 11:29 
Nicht ganz, das Problem ist die Klassen-Variable, die heißt wie die Methode. Zwei Methoden sind möglich, solange die Parameter eine eindeutige Unterscheidung erlauben, bei Methoden und Variablen ist das aber nicht erlaubt.

Gleich mehrere Punkte fallen mir auf:
  • Klassen-Variablen sollten nicht public sein
  • Klassen-Variablen sollten klein geschrieben werden und mit einem Unterstrich beginnen
  • Der Name einer Methode sollte Verben verwenden
  • Ein dreidimensionales String-Array riecht danach, dass hier eine Klasse sinnvoller sein könnte

Für diesen Beitrag haben gedankt: erfahrener Neuling
C#David Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Di 05.06.18 14:49 
Alles klar...vielen Dank für eure schnelle Hilfe!. Und ist es auch möglich ein mehrdimensionales Array bestehend aus Zeilen/Spalten mit unterschiedlichen Datentypen zu deklarieren/ initialisieren? Wenn ja, wie? Nochmals besten Dank!
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Di 05.06.18 15:10 
Nein, geht nicht.

Um das zu erreichen brauchst Du einen Typ, der wiederum eine Liste vom nächsten Typ beinhaltet.
Das ist aber genau das, was Du haben willst, denn damit bist Du langfristig flexibler.

Außer natürlich, deine Daten lassen sich nur als dreidimensionales Array sinnvoll beschreiben, dann ist das egal.
Wenn Du aber z.B. in der zweiten Ebene Namen für das Array der dritten Ebene hast, könntest Du das z.B. als Dictionary abbilden.

Wirklich was darüber sagen kann man aber nicht, denn je nach Situation und Anwendungsfall sieht das völlig anders aus.