Partage
  • Partager sur Facebook
  • Partager sur Twitter

[ C# ] Accessibilité incohérente

Sujet résolu
    6 mars 2019 à 0:07:58

    Bonjour,

    J'apprend le C# .NET (avec openclassrooms). Je suis arrivé au chapitre sur les délégués, lambdas, événements...

    J'essaie d'utiliser un événement grâce au type d'événement 'EventHandler'. Mais lorsque j' déclare mon événement, Visual Studio me prévient d'une imminente erreur de compilation dû à l'accessibilité de mon event et de EventHandler.

    Je ne comprend pas quel-est le problème, quelqu'un pourrait m'aider svp, merci.

    Voici le code :

    namespace Learn
    {
    	public class Program
    	{
    		static void Main(string[] args)
    		{
    
    			Calcul calcul = new Calcul();
    
    			calcul.MyEvent += CalculHappened;
    
    			calcul.Addition(1, 4);
    
    		}
    
    		static void CalculHappened(object sender, CalculHappenedEventArgs e)
    		{
    			if (e.CalculType == Calcul.CalculType.addition)
    				Console.WriteLine("A calcul happened : {0} + {1}", e.A, e.B);
    			else
    				Console.WriteLine("A calcul happened : {0} - {1}", e.A, e.B);
    		}
    	}
    
    	class CalculHappenedEventArgs : EventArgs
    	{
    
    		public Calcul.CalculType CalculType { get; set; }
    		public int A { get; set; }
    		public int B { get; set; }
    
    		public CalculHappenedEventArgs(Calcul.CalculType calculType, int a, int b)
    		{
    			this.CalculType = calculType;
    			this.A = a;
    			this.B = b;
    		}
    
    	}
    
    	public class Calcul
    	{
    		public delegate int CalculDelegate(int a, int b);
    		public event EventHandler<CalculHappenedEventArgs> MyEvent;
    
    		public enum CalculType
    		{
    			addition, substraction,
    		}
    
    		public Calcul() { }
    
    		public int Calculate(CalculDelegate methodToUse, int a, int b)
    		{
    			return methodToUse(a, b);
    		}
    
    		public void Addition(int a, int b)
    		{
    			Calculate((int a1, int b1) => a1 + b1, a, b);
    			if (MyEvent != null)
    				MyEvent(this, new CalculHappenedEventArgs(CalculType.addition, a, b));
    		}
    
    		public void Substraction(int a, int b)
    		{
    			Calculate((int a1, int b1) => a1 - b1, a, b);
    			if (MyEvent != null)
    				MyEvent(this, new CalculHappenedEventArgs(CalculType.substraction, a, b));
    		}
    	}
    }



    • Partager sur Facebook
    • Partager sur Twitter
      6 mars 2019 à 1:27:13

      ligne de l'erreur et message d'erreur complet, SVP.
      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

      [ C# ] Accessibilité incohérente

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown