2010-10-24 35 views
0

Voici le brouillon numéro 5 pour mes devoirs C# cette semaine. J'ai écrit le programme en utilisant Linq en premier, et ça a bien fonctionné. Malheureusement, les instructions indiquent que je dois créer ma propre méthode au lieu d'utiliser la merveilleuse méthode Sum() déjà trouvée dans Linq. Le problème majeur avec ce code source est que la surcharge de la méthode est incorrecte (et il est également probable que toute ma méthode Sum() est également incorrecte). Puisque notre texte tout-puissant n'explique pas clairement comment surcharger une méthode comme celle-ci, je suis en quelque sorte perdu (ou beaucoup perdu).Erreur CS1501: Je ne surcharge pas correctement une méthode Sum()

Voici les instructions d'affectation (nouveau):.

« Créer une méthode nommée Somme() qui accepte un certain nombre de paramètres entiers et affiche leur somme Ecrire une méthode Main() qui illustre la méthode Somme() fonctionne correctement lorsqu'il est passé un, trois, cinq ou un tableau de 10 entiers Enregistrer le programme en utilisant UsingSum.cs. "

de Microsoft® Visual C# ® 2008, Introduction à la programmation orientée objet, 3e, Joyce Farrell

Voici mon code source:

using System; 

public class UsingSum 
{ 
    public static void Main() 
    { 

     //Step 1: Adding 1, 3 and 5 

     int[] array1 = { 1, 3, 5 }; 

     int a; 
     int b; 
     int c; 
     int d; 
     int e; 
     int f; 
     int g; 
     int h; 
     int i; 
     int j;   
     int firstSum; 
     int secondSum; 

     Console.Write("When the numbers 1, 3 and 5 are added together, using the Sum() method, the answer is: "); 

     firstSum = Sum(array1); 
     Console.WriteLine("{0}", firstSum); 



     //Step 2: Entering variables into Array2[10] 


     Console.Write("Enter first integer for addition: "); 
     a = Convert.ToInt32(Console.ReadLine()); 
     Console.Write("Enter second integer for addition: "); 
     b = Convert.ToInt32(Console.ReadLine()); 
     Console.Write("Enter third integer for addition: "); 
     c = Convert.ToInt32(Console.ReadLine()); 
     Console.Write("Enter forth integer for addition: "); 
     d = Convert.ToInt32(Console.ReadLine()); 
     Console.Write("Enter fifth integer for addition: "); 
     e = Convert.ToInt32(Console.ReadLine()); 
     Console.Write("Enter sixth integer for addition: "); 
     f = Convert.ToInt32(Console.ReadLine()); 
     Console.Write("Enter seventh integer for addition: "); 
     g = Convert.ToInt32(Console.ReadLine()); 
     Console.Write("Enter eighth integer for addition: "); 
     h = Convert.ToInt32(Console.ReadLine()); 
     Console.Write("Enter ninth integer for addition: "); 
     i = Convert.ToInt32(Console.ReadLine()); 
     Console.Write("Enter tenth integer for addition: "); 
     j = Convert.ToInt32(Console.ReadLine()); 

     int[] array2 = { a, b, c, d, e, f, g, h, i, j }; 

     Console.Write("The total of {0} + {1} + {2} + {3} + {4} + {5} + {6} + {7} + {8} + {9} is: ", 
     a, b, c, d, e, f, g, h, i, j); 

     secondSum = Sum(array2); 
     Console.WriteLine("{0}", secondSum); 


    } 


//Step 3: Defining the Sum() method 

    public static int Sum(int a, int b) 

//My overload is generating error CS1501: No overload for method 'Sum' takes '1' arguments 

    { 

    int sum = 0; 
    int[] adder = new int[0]; 
//designating an array with no parameters... 

    for(int a = 0; a < adder.Length; ++a) 
     adder[a] = a; 

    foreach(int b in adder) 
     sum += b; 
     Console.WriteLine(" " + sum); 
    } 
} 

Répondre

1

Vous définissez Somme de prendre 2 arguments

public static int Sum(int a, int b) 

mais seulement appeler avec 1 argument

firstSum = Sum(array1); 

Essayez de définir la somme à prendre un tableau int:

public static int Sum(int[] input) 
+0

Ok, je donne qu'un essayer :-) Merci d'expliquer le problème clairement. – Nooob

+0

Ça a marché! :-) J'ai oublié d'ajouter le retour à la fin. La fonction Sum réelle génère 0 pour tout, mais je vais me débrouiller ... Merci pour votre aide. – Nooob

+0

... Mes codes sources compilent et fonctionnent parfaitement. Il générait 0 car j'ai référencé le tableau d'addition dans foreach (int b dans adder) au lieu de référencer le tableau "input" utilisé pour surcharger la méthode Sum(). Un grand merci à tous ceux qui m'ont aidé à comprendre ce genre de choses ce week-end. :-) – Nooob