La méthode doit avoir le type de retour (C#)
donc j'ai suivi tout le long de C# avec ce livre.
http://www.robmiles.com/c-yellow-book/Rob%20Miles%20CSharp%20Yellow%20Book%202011.pdf
sur la page 81-82-je obtenir ce code à partir de là et en ajouter une nouvelle méthode à partir de la page 82 résultant dans:
using System;
enum AccountState
{
New,
Active,
UnderAudit,
Frozen,
Closed
};
struct Account
{
public AccountState State;
public string Name;
public string Address;
public int AccountNumber;
public int Balance;
public int Overdraft;
};
class Bankprogram
{
public static void Main()
{
Account RobsAccount;
RobsAccount.State = AccountState.Active;
RobsAccount.Name = "Rob Miles";
RobsAccount.AccountNumber = 1234;
RobsAccount.Address = "his home";
RobsAccount.Balance = 0;
RobsAccount.Overdraft = -1;
Console.WriteLine("name is " + RobsAccount.Name);
Console.WriteLine("balance is : " + RobsAccount.Balance );
}
public void PrintAccount(Account a)
{
Console.WriteLine ("Name" + a.Name);
Console.WriteLine ("Address :" + a.Address);
Console.WriteLine ("Balance:" + a.Balance);
}
PrintAccount(RobsAccount);
}
mais j'obtiens une erreur: la Méthode Doit avoir le type de retour. se référant à la "PrintAccount(RobAccount);"
Je sais que cette question a été posée, mais aucun d'entre eux ressemblaient à mon problème.
- Vous essayez d'appeler une méthode directement à l'intérieur d'une classe. Vous ne pouvez pas le faire. Essayez de mettre votre
PrintAccount(RobsAccount);
au bas de laMain
méthode. - Votre phrase
PrintAccount(RobsAccount);
n'est pas à l'intérieur d'une méthode
Vous devez vous connecter pour publier un commentaire.
Le problème est que le compilateur pense que
PrintAccount(RobsAccount);
est une définition de la méthode et c'est pourquoi est exigeant pour un type de retour.Vous devez appeler cette méthode à l'intérieur d'une autre méthode, vous ne pouvez pas l'appeler sur le vide.
Il y a 2 problèmes
Problème 1: Votre appel de méthode est directement à l'intérieur d'une classe. Il doit être à l'intérieur d'une méthode. Nous déclarer les méthodes de la classe, de ne pas les appeler.
Problème 2: méthodes Statiques sont appelés à l'intérieur des méthodes statiques de sorte que votre
PrintAccount
méthode doit également être statique.Solution: Ce doit être la structure de la classe.
PrintAccount()
doit être statique!PrintAccount
methood comme statique. Problème n ° 2 de ma réponse.Quand pensez-vous que la fonction qui doit être appelée exactement? Vous avez laissa au milieu de la définition d'une classe (c'est pourquoi vous obtenez le message d'erreur). Vous attendez-vous à être appelée lorsque le programme démarre? Lorsque la première instance de votre classe est créée? Il n'est pas logique; les classes sont des modèles pour les objets.
Si vous voulez appeler une méthode, vous devez le faire à partir d'une autre méthode (statique de l'initialisation de côté pour l'instant). Donc, supprimer cette ligne, puis dans les principales...
Notez également que votre design est très étrange. Vous avez défini principal à l'intérieur de votre
Bankprogram
classe (pourquoi?) et tout est statique. Avez-vous l'intention d'en tenir un compte où tous les biens de son compte est codé en dur? Il ne semble pas très utile.Tout d'abord, vous essayez d'appeler
PrintAccount()
méthode en dehors de toute autre méthode! Il semble que c'est une faute de frappe.Deuxième,
PrintAccount()
méthode doit être statique (il appartient à laBankprogram
classe) qui est appelée à partir de statiqueMain()
méthode.Le problème, c'est que vous avez le code dans la classe, qui n'est pas dans une méthode.
Déplacer cette ligne dans le
Main
méthode:Côté remarque: Le code est à l'aide d'un
struct
pour un objet de données, où unclass
serait approprié.PrintAccount()
doit être statique!Il y a deux choses mal ici;
Essayer de changer les deux éléments suivants:
Votre code sera alors ressembler à ceci:
Bonne chance!
Est probablement une faute de frappe. Ne sais pas si le vôtre ou dans le livre.
L'appel à
PrintAccount
doivent être effectuées à l'intérieur d'une méthode de la classe BankProgram.Comme l'écrit, l'appel est en dehors de la méthode, et c'est une erreur.
De plus, la PrintAccount méthode, si elle est appelée à partir de l'intérieur de la Principale, devrait être aussi statique parce que faire appel à un membre de l'instance méthode, vous devez créer une instance de la BankProgram classe