Konsolenausgabe gibt falschen Wert

Hallo,

hab mal ein kleines Übungsprogramm geschrieben, um die Funktion von “params” zu testen. Nur leider wird mir ständig als Ergebnis 0 anstatt die Summe der Array-Elemente ausgegeben. Fehler beim Kompilieren gibt es nicht. Woran kann das liegen?

Hier der Code:
[CSharp]//Hauptklasse mit Main()

using System;
using System.Collections.Generic;
using System.Text;
using MyClassLib;

namespace LibraryTest {
public class Program {
static void Main(string[] args) {

     ClassA obj = new ClassA();
     bool q = true;
     int[] zahl=new int[100];
     Console.Write("Gib die erste Zahl ein: ");
     while(q) {
        int x=0;
        zahl[x] = Convert.ToInt32(Console.ReadLine());
        if (zahl[x] == 0)
           q = false;
        x++;
        Console.WriteLine("+");
     }
     int erg=obj.funk(zahl);
     Console.WriteLine("{0}", erg);
  }

}
}
[/CSharp]

[CSharp]//dazugehörige DLL

using System;
using System.Collections.Generic;
using System.Text;

namespace MyClassLib {
public class ClassA {
int summe=0;
public int funk(params int[] zahl) {

     foreach (int i in zahl) {
        summe += i;
     }
     return summe;
  }

}

}[/CSharp]

Würde mich riesig über einen Tip freuen!

Danke

sieh dir mal dein x an du legst es bei jedem Schleifendurchgang neu an und schreibst so immer nur in die Position 0, außerdem testest du so nicht wirklich die params weil du ja nur einen Array übergibst :wink:

Sowas, klar! Hier hab ichs mal geändert - und es geht. :smiley:

[CSharp]namespace LibraryTest {
public class Program {
static void Main(string[] args) {

     ClassA obj = new ClassA();
     int x=0;
     bool q = true;
     int[] zahl=new int[100];
     Console.Write("Gib die erste Zahl ein: ");
     while(q) {
        
        zahl[x] = Convert.ToInt32(Console.ReadLine());
        if (zahl[x] == 0)
           q = false;
        x++;
        Console.WriteLine("+");
     }
     int erg=obj.funk(zahl);
     Console.WriteLine("{0}", erg);
  }

}
} [/CSharp]

Danke für die schnelle Antwort.
Dio