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.
mchsamples-.net-core/p02_Fondamentaux/ex_003_004_Console/Program.cs

104 lines
5.1 KiB

// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-21
//
// ========================================================================
using System;
using static System.Console;
using static System.Text.Encoding;
namespace ex_003_004_Console
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = UTF8;
WriteLine("Voici un exemple d'utilisation de la console");
//utilisation de Write, qui écrit dans la Console, mais ne va pas à la ligne
Write("Avec Write, je ne vais pas à la ligne, ");
//WriteLine, écrit dans la Console, puis va à la ligne
WriteLine("mais avec Write Line, si.");
//toutes les variables peuvent être transformées en chaîne de caractères,
//car chaque type possède une méthode ToString() qui le transforme en chaîne de caractères.
//Dans le cas des types que vous créerez vous-même, vous devrez écrire cette méthode ToString,
//car la méthode par défaut ne vous conviendra pas souvent.
//Dans le cas des types .NET, vous pouvez l'utiliser directement, car elle toujours réécrite.
//Lorsque vous voulez afficher une variable dans la Console à l'aide de Write ou WriteLine,
//vous pouvez appeler explicitement ce ToString, ou ne rien faire, dans ce cas, ToString est appelée
//de manière implicite.
WriteLine("Je peux aussi écrire le contenu de variables : ");
int a = 2;
//les deux lignes suivantes font exactement la même chose (la première est juste plus simple)
WriteLine(a);
WriteLine(a.ToString());
int b = 3;
int c = a + b;
//dans la ligne suivante, le compilateur fait a.ToString() + " + " b.ToString() + " = " + c.ToString()
//car il commence par le premier + : a + " + "
//Lorsque le compilateur cherche à ajouter un entier à une chaîne de caractères, il transforme l'entier en chaîne de caractères
//puis concatène les deux.
//Il obtient donc la chaîne de caractères "2 + ", puis passe à la seconde opération : une chaîne de caractères + un entier
//Il transforme donc l'entier en chaîne de caractères et les concatène, etc...
WriteLine(a + " + " + b + " = " + c);
//Autre manière plus simple de l'écrire, et plus efficace, en utilisant un string.Format implicite
//(qui sera présenté plus tard)
WriteLine("{0} + {1} = {2}", a, b, c);
//ou encore depuis C#6 :
WriteLine($"{a} + {b} = {c}");
//à partir de ce que vous avez vu dans l'exemple précédent, essayez de déterminer le résultat des affichages suivants :
WriteLine("petit truc marrant :");
WriteLine(a + b + " = Somme");
WriteLine("Somme = " + a + b);
//le premier donne "5 = Somme" et le deuxième donne "Somme = 23"
//Dans le premier cas, le compilateur s'occupe du premier + : a + b
//a et b sont deux entiers, il ajoute donc deux entiers : 2 + 3 = 5
//puis il ajoute un entier (5) et une chaîne de caractères " = Somme"
//Il transforme donc l'entier en chaîne de caractères puis les concatène : "5 = Somme"
//Dans le deuxième cas, il ajoute d'abord une chaîne de caractères "Somme = " et un entier a
//Il transforme donc l'entier en chaîne de caractères et les concatène, soit "Somme = " + "2" = "Somme = 2"
//Il ajoute ensuite une chaîne de caractères "Somme = 2" et un entier b
//Il transforme donc l'entier en chaîne de caractères "3" et les concatène : "Somme = 2" + "3" = "Somme = 23"
WriteLine("Ecrivez du texte puis appuyez sur Entrée");
//pour lire le texte entré par l'utilisateur
string s = ReadLine(); //lit jusqu'à l'appui sur ENTREE
WriteLine($"Vous avez écrit : {s}");
//attend l'appui sur une touche
ReadKey(true);
//on peut changer la couleur de fond
BackgroundColor = ConsoleColor.DarkBlue;
//on peut changer la couleur du texte
ForegroundColor = ConsoleColor.Yellow;
WriteLine("sympa mais vite illisible :)");
//on peut faire des beep
Beep();
//on peut obtenir des informations sur la Console, comme sa taille par exemple
WriteLine($"La fenêtre Console mesure {WindowHeight} caractères de haut et {WindowWidth} caractères de large");
//On peut effacfer le contenu de la Console avec Clear
WriteLine("Appuyez sur une touche pour effacer le contenu de la Console");
ReadKey(true);
Clear();
}
}
}