1
votes

c # ERREUR: le modificateur 'privé' n'est pas valide pour cet élément

Peu importe le modificateur que je mets sur le devant de la fonction (j'ai essayé avec public, private et même protégé), je reçois toujours une erreur, la même erreur. Le code n'est propre qu'après avoir supprimé le modificateur et laissé la fonction "Array ()" sans un. Quelqu'un peut-il regarder mon code et m'expliquer ce qui se passe s'il vous plaît, je suis nouveau dans c #, et aussi nouveau pour demander de l'aide, alors veuillez excuser chaque erreur que j'ai faite jusqu'à présent.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

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

            public void Array()//nu se pune in interiorul functiei void Main (), deoarece va forma nesting, si ne va da eroare la compilare.
            {
                int[] intArray;
                intArray = new int[3];//all values will be 3


                var doubleArray = new[] { 34.23, 10.2, 23.2 };

                //var arrayElement = doubleArray[0];
                //doubleArray[1] = 5.55;

                for (var i = 0; i < intArray.Length; i++)
                {
                    Console.WriteLine(intArray[i]);
                }
            }

        }



    }
}

J'ai publié le code et l'image ci-dessous.

Dans cette image, vous pouvez voir le code


7 commentaires

Veuillez ne pas publier d'images de code, ajoutez le code réel à votre question.


@ Zer0 Non, pas du tout.


@DavidG J'aurais aimé pouvoir le faire, mais je ne sais pas comment. Lorsque je voulais coller le code, il n'autorisait que les langages html, css et javascript. J'ai essayé de changer la langue et il m'a fallu l'adresse URL du lieu du code, mais je n'ai pas mon code sur un site et je ne sais pas si je peux le mettre sur un.


Rien ne vous empêche de coller le code directement dans la fenêtre, puis assurez-vous d'appuyer sur le bouton "Exemple de code" pour le formater.


Consultez ici la mise en forme des articles.


@ Zer0 merci beaucoup!


@Corina Vous n'êtes pas obligé de dire merci à tout le monde. Corrigez simplement le message.


4 Réponses :


0
votes

Vous mettez votre fonction privée dans une fonction statique. Supprimer le privé.


6 commentaires

Il est autorisé en C # 7. Ce n'est pas mon vote défavorable btw


ok, je vais régler ...


Je ne sais pas pourquoi vous mentionnez statique ici, ce n'est pas du tout pertinent. De plus, vous n'expliquez pas vraiment pourquoi la suppression de private est utile.


Je devrais probablement être abattu ...


mon commentaire indiquait EXACTEMENT ce que faisait l'OP ...


Pas besoin d'être aussi défensif, je dis juste ce que je pense peut être amélioré.



5
votes

Vous créez une méthode imbriquée (également appelée fonction locale). Les méthodes imbriquées peuvent ne pas avoir de modificateurs d'accès. Ils ne sont accessibles qu'à partir de cette méthode.

Pour référence: https: // docs .microsoft.com / dotnet / csharp / guide-de-programmation / classes-et-structs / fonctions-locales


1 commentaires

Merci beaucoup pour votre réponse!



6
votes

Vous avez une fonction imbriquée, en C #, elle s'appelle fonctions locales et n'ont pas de portée. vous devez donc supprimer le modificateur d'accès, par exemple:

public static void PrintHelloWorld()
{
    string GetName()
    {
        return "world";
    }


    Console.WriteLine($"Hello {GetName()}");
}


1 commentaires

Merci beaucoup pour votre réponse!



-2
votes

Déplacez la fonction hors de la fonction principale. Vous devez également le marquer comme statique, puis l'utiliser comme vous le souhaitez. Ceci au cas où vous ne voudriez pas d'une méthode imbriquée car elle a déjà reçu une réponse.


2 commentaires

Merci beaucoup pour votre réponse!


Ce n'est pas une réponse