2016-07-20 2 views
-6

Wie konvertiert man dies in C# -Code?Der Typ 'System.Array' kann nicht implizit in 'dezimal []' konvertiert werden. Eine explizite Konvertierung existiert (fehlt Ihnen eine Besetzung?)

//Cannot implicitly convert type 'System.Array' to 'decimal[]'. 
//An explicit conversion exists 
Array[] s = new Array[10]; 
for (int i = 0; i < 9; i++) 
{ 
    s[i] = average; //average is decimal [] 
} 
for (int i = 0; i < 2; i++) 
{ 
    Mean = s[i]; //mean is decimal[] & s[i] system array 
} 
+3

Bearbeiten Sie Ihre Frage, anstatt diesen Code als Kommentar zu veröffentlichen. –

+3

@deepakdwivedi Callum und ich haben Ihren Beitrag mit diesem Code bearbeitet. Hören Sie auf, Ihren Code in den Kommentaren zu posten. –

+0

@deepakdwivedi Wenn du deine Frage anschaust, solltest du einige kleine Hyperlinks sehen, die 'share edit close delete flag' sagen. Mit edit kannst du den Text deiner Frage ändern – MikeT

Antwort

2

Es sieht so aus, als ob Sie versuchen, ein gezacktes Array einzurichten. In diesem Fall vermute ich, dass die beste Option s als decimal[][] zu geben ist:

decimal[][] s = new decimal[10][]; 

Dann wird alles nur arbeiten.

Sie können auch werfen:

Mean = (decimal[])s[i]; 

aber das ist weniger befriedigend, IMO.

2

Ich weiß nicht, was Sie mit diesem Code zu tun versuchen, da es keinen Durchschnitt berechnen oder bedeuten,

aber die typenlos Array-Klasse verwendet, wird dies in erster Linie als ein dienen sollen gemeinsame Basisklasse, so dass alle Arrays das gleiche Verhalten zeigen, kann es auch in seltenen Situationen verwendet werden, wenn Sie nicht wissen, welcher Typ das Array ist

Die richtige Art und Weise ein Array zu definieren ist TypeName [ArraySize] also if Sie wollen ein dezimales Array der Größe 10 dann wäre die richtige Verwendung decimal[10]

hier ist Ihre "w orking "code:

decimal demo_average = 0; 
decimal demo_mean = 0; 

decimal[] s = new decimal[10]; 
for (int i = 0; i < 9; i++) 
{ 
    s[i] = demo_average; 
} 

for (int i = 0; i < 2; i++) 
{ 
    demo_mean = s[i]; 
} 
+0

eine Erklärung, die dem OP erklärt, warum er falsch ging, würde dies verbessern – MikeT

+0

wie? Ich habe keine Ahnung, was OP versucht zu tun, weil er/sie offensichtlich mysteriöse Fragen mag ^^ – wischi

+0

sie sind eindeutig nur nach C# umgezogen und versuchen Arrays zu verwenden, aber die typlosen Arrays zu verwechseln ein Array und nicht die typisierten Arrays, die die richtige Route sind – MikeT

Verwandte Themen