Je développe une série de nombres à partir de la fonction SSTStart (2) de l'interface ISeries. J'ai essayé de mettre en œuvre cette interface dans la classe1 mais j'ai jeté une erreur pour moi. Et je suis coincé à cette erreur et je n'ai pas pu comprendre cela pour résoudre ce problème. Qu'est-ce que je rate? S'il vous plaît aider
J'ai essayé de faire toutes les fonctions dans l'interface publique
J'ai essayé de supprimer le spécificateur d'accès public de l'interface p> Je m'attends à ce que la sortie soit 3 et 0 erreur est générée p> p>
3 Réponses :
Vous devez faire vos méthodes Vous devez effectuer toutes les 3 méthodes publiques selon votre scénario comme: p> et vous devrez d'abord ajouter 1, puis revenir à obtenir 3 comme sortie sous forme Public CODE> Pour être accessible à l'extérieur de la classe qui manque autre que votre code a l'air bien. VAL ++ code> retournera la valeur actuelle, puis augmentera C'EST PAR 1: P> public class Class1 : ISeries {
int val;
public void Setstart (int a) {
val = a;
}
public int GetNext () {
val = val + 1;
return val;
}
public void Reset () {
val = 0;
}
}
Vous obtiendrez toujours 2 comme sortie
Votre devrait essayer quelque chose comme ça.
Parce que vous devez jouer avec une variable, vous devez donc utiliser et Aussi, vous devez marquer toute la méthode à l'intérieur d'une classe code> en tant que ref code> `` mot-clé dans ce cas. p> public code> sinon, vous n'avez pas pu accéder à ces méthodes à l'intérieur Main p >
Tous ceux-ci ne sont pas nécessaires pour faire fonctionner ce programme simple. C'est une overcilleuse. Pas besoin de les faire des membres de référence, car il accède à la variable sur la portée racine, il ne le transmet pas comme un argument à la fonction.
@Vilsad p p: Chaque problème a plusieurs solution, donc j'ai présenté ma solution de cette manière et son travail bien en fonction de la question qui s'attend à la question ... Alors, veuillez supprimer le bowvote en raison de la non-cause spécifique ...
Je ne dis pas que votre solution ne fonctionnera pas, je disais son excédent pour un problème aussi simple. C'était la raison de mes voix basse.
VAL ++ incrustera après avoir renvoyé la valeur actuelle, ++ Val augmentera d'abord, puis de renvoyer la valeur, vous devez maintenant obtenir 3, ce qui le rendra aussi approprié pour accéder aux méthodes de l'extérieur
class Class1 : ISeries {
int val;
public void Setstart (int a) {
val = a;
}
public int GetNext () {
return ++val;
}
public void Reset () {
val = 0;
}
static void Main () {
Class1 c = new Class1();
c.Setstart(2);
Console.WriteLine (c.GetNext());
c.Reset();
Console.WriteLine ("");
}
En ce qui concerne votre réponse ... La sortie est 2 mais la sortie attendue est trois ... Veuillez lire attentivement la question ...
Vérifiez cela, ma réponse est correcte, elle imprimera 3 DotNetFiddle.net/vpgsy0
@ REHAN.S Veuillez vérifier le résultat du violon et veuillez supprimer votre vote en direct.