-1
votes

Comment réparer cette implémentation d'interface Iseries en classe1?

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 xxx

Je m'attends à ce que la sortie soit 3 et 0 erreur est générée


0 commentaires

3 Réponses :


0
votes

Vous devez faire vos méthodes Public CODE> Pour être accessible à l'extérieur de la classe qui manque autre que votre code a l'air bien.

Vous devez effectuer toutes les 3 méthodes publiques selon votre scénario comme: p> xxx pré>

et vous devrez d'abord ajouter 1, puis revenir à obtenir 3 comme sortie sous forme 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;
    }
}


1 commentaires

Vous obtiendrez toujours 2 comme sortie



0
votes

Votre devrait essayer quelque chose comme ça.

Parce que vous devez jouer avec une variable, vous devez donc utiliser ref `` mot-clé dans ce cas.

et Aussi, vous devez marquer toute la méthode à l'intérieur d'une classe en tant que public sinon, vous n'avez pas pu accéder à ces méthodes à l'intérieur Main

code: xxx

sortie:

 Entrez la description de l'image ici


3 commentaires

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.



0
votes

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 ("");
}


3 commentaires

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.