You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
5.0 KiB
126 lines
5.0 KiB
// ========================================================================
|
|
//
|
|
// Copyright (C) 2016-2017 MARC CHEVALDONNE
|
|
// marc.chevaldonne.free.fr
|
|
//
|
|
// Module : Program.cs
|
|
// Author : Marc Chevaldonné
|
|
// Creation date : 2016-10-03
|
|
//
|
|
// ========================================================================
|
|
|
|
using System;
|
|
using static System.Console;
|
|
|
|
using Namespace2;
|
|
using System.Text;
|
|
|
|
namespace Namespace1
|
|
{
|
|
class Program
|
|
{
|
|
|
|
static void Main(string[] args)
|
|
{
|
|
OutputEncoding = Encoding.Unicode;
|
|
|
|
//on déclare une instance d'un type délégué déclaré dans une autre classe, le reste fonctionne pareil
|
|
#region Affichage des infos dans la Console
|
|
ForegroundColor = ConsoleColor.White;
|
|
Write("utilisation d'une méthode ");
|
|
ForegroundColor = ConsoleColor.Magenta;
|
|
Write("statique ");
|
|
ForegroundColor = ConsoleColor.White;
|
|
Write("comme instance de délégué d'un type délégué d'une autre classe : ");
|
|
ForegroundColor = ConsoleColor.Red;
|
|
WriteLine("Double");
|
|
ForegroundColor = ConsoleColor.DarkGreen;
|
|
WriteLine("MaClasseDeMath.Modifieur m = Double;");
|
|
WriteLine("int resultat = m(3)");
|
|
ForegroundColor = ConsoleColor.Red;
|
|
#endregion
|
|
MaClasseDeMaths.Modifieur m = Double;
|
|
int resultat = m(3);
|
|
WriteLine("m(3) = " + resultat);
|
|
#region Affichage des infos dans la Console
|
|
ForegroundColor = ConsoleColor.DarkGray;
|
|
#endregion
|
|
WriteLine($"m.Target == null ? {m.Target == null}");
|
|
#region Affichage des infos dans la Console
|
|
ForegroundColor = ConsoleColor.White;
|
|
WriteLine();
|
|
#endregion
|
|
|
|
|
|
|
|
//on affecte MaClasseDeMath.Carré (méthode static d'une autre classe que Main) à m
|
|
#region Affichage des infos dans la Console
|
|
ForegroundColor = ConsoleColor.White;
|
|
Write("utilisation d'une méthode ");
|
|
ForegroundColor = ConsoleColor.Magenta;
|
|
Write("statique d'une autre classe ");
|
|
ForegroundColor = ConsoleColor.White;
|
|
Write("comme instance de délégué d'un type délégué d'une autre classe : ");
|
|
ForegroundColor = ConsoleColor.Red;
|
|
WriteLine("MaClasseDeMath.Carré");
|
|
ForegroundColor = ConsoleColor.DarkGreen;
|
|
WriteLine("MaClasseDeMath.Modifieur m = MaClasseDeMath.Carré;");
|
|
WriteLine("int resultat = m(3)");
|
|
ForegroundColor = ConsoleColor.Red;
|
|
#endregion
|
|
m = MaClasseDeMaths.Carré;
|
|
resultat = m(3);
|
|
WriteLine($"m(3) = {resultat}");
|
|
#region Affichage des infos dans la Console
|
|
ForegroundColor = ConsoleColor.DarkGray;
|
|
#endregion
|
|
WriteLine($"m.Target == null ? {m.Target == null}");
|
|
#region Affichage des infos dans la Console
|
|
ForegroundColor = ConsoleColor.White;
|
|
WriteLine();
|
|
#endregion
|
|
|
|
//on affecte Droite.Image (méthode non static d'une autre classe que Main) à m
|
|
#region Affichage des infos dans la Console
|
|
ForegroundColor = ConsoleColor.White;
|
|
Write("utilisation d'une méthode ");
|
|
ForegroundColor = ConsoleColor.Magenta;
|
|
Write("non statique d'une autre classe ");
|
|
ForegroundColor = ConsoleColor.White;
|
|
Write("comme instance de délégué d'un type délégué d'une autre classe : ");
|
|
ForegroundColor = ConsoleColor.Red;
|
|
WriteLine("Droite.Image");
|
|
ForegroundColor = ConsoleColor.DarkGreen;
|
|
WriteLine("Droite droite = new Droite(1, 2);");
|
|
WriteLine("MaClasseDeMath.Modifieur m = droite.Image;");
|
|
WriteLine("int resultat = m(3)");
|
|
ForegroundColor = ConsoleColor.Red;
|
|
#endregion
|
|
Droite droite = new Droite(1, 2);
|
|
m = droite.Image;
|
|
resultat = m(3);
|
|
WriteLine($"m(3) = {resultat}");
|
|
#region Affichage des infos dans la Console
|
|
ForegroundColor = ConsoleColor.DarkGray;
|
|
#endregion
|
|
WriteLine($"m.Target == null ? {m.Target == null}");
|
|
WriteLine($"m.Target : {m.Target}");
|
|
#region Affichage des infos dans la Console
|
|
ForegroundColor = ConsoleColor.White;
|
|
WriteLine();
|
|
#endregion
|
|
}
|
|
|
|
/// <summary>
|
|
/// méthode static de type "Modifieur" car elle a la même signature que le délégué Modifieur
|
|
/// </summary>
|
|
/// <param name="x">un entier</param>
|
|
/// <returns>le double de l'entier pris en paramètre</returns>
|
|
static int Double(int x)
|
|
{
|
|
return x * 2;
|
|
}
|
|
}
|
|
|
|
}
|