Apprenez rapidement à développer en C# pour les débutants

View more categories:

1- Introduction

Ceci est un guide de C# pour les débutants. Pour programmer C#, vous devez installer des outils de programmation Visual Studio. Vous pouvez voir les instructions pour télécharger et installer à:
Si vous êtes nouveau sur C#, vous devriez lire ce document du début à la fin, ce qui vous donnera une vue d'ensemble avant d'apprendre d'autres documents plus détaillés.

2- Créer votre premier projet C#

C'est la première image lors que vous ouvrez  Visual Studio.
Créer un nouveau projet:
Nous créons un simple projet (L'application  Console, est une application qui n'a pas de l'interface). Saisissez:
  • Name: HelloCSharp
  • Solution: Create new solution
  • Solution Name: MySolution
C'est une image de votre projet qui a été créée. Vous devez cliquer sur Solution Explorer pour afficher la structure de ce projet créé
Visual Studio créé une  Solution (la solution) nommée  MySolution et comprend un  Project nommé  HelloCSharp. Et crée par défat une classe baptisée  Program (correspondant au fichier  Program.cs).
Remarque: Une  Solution (Solution) peut contenir un ou plusieurs  Project.
Éditez le code de la classe Program, alors, lors de l'exécution, il apparaîtra sur l'écran de Console une ligne de lettres  "Hello CSharp", et en attendant que l'utilisateur entre tout texte avant de finir.
Cliquez sur  Start pour exécuter la classe  Program.

3- Expliquer la structure de la classe

L'illustration ci-dessous est la structure de la classe Program, qui se trouve dans l'espace de noms (namespace)  HelloCSharp. Un espace de noms peut contenir une ou plusieurs classes.
Si vous souhaitez utiliser une certaine classe, vous devez déclarer utiliser cette classe ou déclarer utiliser un espace de noms (namespace) contenant cette classe.
// Declaring to use System namespace.
// (That means you can use all the classes,.. in this namespace).
using System;
Lors que le programme exécute, la méthode  Main(string[]) sera appelée pour exécuter.
  1. static est le mot-clé informé qu'il s'agit d'une méthode statique.
  2. void est le mot clé informé que la méthode ne renvoie rien.
  3. args est le paramètre de la méthode, un ensemble de string (chaînes) - string[].
static void Main(string[] args)
{
    // Print text to the console window.
    Console.WriteLine("Hello CSharp");

    // Wait for the user to enter something and press Enter before ending the program.
    Console.ReadLine();
}
Après avoir déclaré l'utilisation de l'espace (namespace) du System, vous pouvez utiliser la classe Console dans cet namespace. WriteLine(string) est une méthode statique de la classe Console, elle permet d'imprimer une chaîne sur l'écran.
// Declare to use System namespace
// (It contains the Console class).
using System;

// And can use the Console class:
Console.WriteLine("Hello CSharp");

// If you do not want to declare System namespace.
// But want to use Console class, you must write the full:
System.Console.WriteLine("Hello CSharp");

4- L'explication de la structure du Projet

Une solution ( Solution) peut comprendre plusieurs  Project. Dans ces  Project ils comprennent des classes (class).
Lors de la visualisation en "Class view", vous pouvez voir vos classes appartiennent à quel espace de noms (namespace).
Dans CSharp, vous créez une classe Animal avec un espace nommé HelloCSharp, cette classe sera située dans le répertoire racine du projet par défaut. Vous créez une autre classe est MyClass avec l'espace de noms nommé O7planning. La classe CSharp s'est également située dans le répertoire racine du projet. Avec un grand projet avec de nombreuses classes, organisez les fichiers en tant que tels vous rendent difficile. Vous pouvez créer différents dossiers pour stocker les fichiers de classe, la règle est à votre décision, mais il est préférable de créer un dossier nommé comme le namespace. Apprenons comment organiser Java.

5- La note importante avec le programme C #

Dans l'application C#, vous devez déclarer explicitement une classe avec la méthode Main(string []) comme un point de départ pour exécuter votre application, ceci n'est pas obligatoire si l'entité de votre application n'a qu'une seule classe avec la méthode Main(string[]), Cependant, si vous avez 2 classes avec la méthode Main, si vous ne spécifiez pas, un message d'erreur apparaîtra dans le processus de compilation.

Par conséquent, vous devez de préférence déclarer clairement la classe avec la méthode Main(string[]), vous pouvez déclarer une autre fois pour une autre classe si vous le souhaitez.
Cliquez sur le bouton droit du projet  HelloCSharp, sélectionnez  Properties:
Sélectionnez  "Startup object" qui est une classe qui possède la méthode  Main(string[]) et  Save.

6- Ajouter la nouvelle classe

Maintenant, j'ajoute une classe  MyClass avec un espace nommé  O7planning.CSharp.
Dans  "Solution Explorer" cliquez sur le bouton droit du projet, sélectionnez:
  • Add/New Folder
Le nom du dossier est  O7planning.
Ensuite, créez un dossier  "CSharp" qui est sous- dossier de  "O7planning".
Cliquez sur le bouton droit du dossier  "CSharp" et sélectionnez:
  • Add/Class
Sélectionnez le type de l'élément  Class, et saisissez le nom de la classe.
La classe a été créée, elle se trouve dans le nom de l'espace  "HelloCSharp.O7planning.CSharp". Vous pouvez renommer du  namespace en  "O7planning.CSharp".
Renommez  namespace en  "O7planning.CSharp".
Vous pouvez changer le contenu de la classe:
MyClass.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace O7planning.CSharp
{
   class MyClass
   {
       static void Main(string[] args)
       {
           Console.WriteLine("Hello from MyClass");
           Console.ReadLine();
       }
   }
}
La déclaration de la classe  MyClass est le point de départ de l'exécution. Cliquez sur le bouton droit du Project et sélectionner  Properties
L'exécution de l'exemple:

7- Les types de données dans C#

Type Represents Range Default Value
bool Boolean value True or False False
byte 8-bit unsigned integer 0 to 255 0
char 16-bit Unicode character U +0000 to U +ffff '\0'
decimal 128-bit precise decimal values with 28-29 significant digits (-7.9 x 1028 to 7.9 x 1028) / 100 to 28 0.0M
double 64-bit double-precision floating point type (+/-)5.0 x 10-324 to (+/-)1.7 x 10308 0.0D
float 32-bit single-precision floating point type -3.4 x 1038 to + 3.4 x 1038 0.0F
int 32-bit signed integer type -2,147,483,648 to 2,147,483,647 0
long 64-bit signed integer type -923,372,036,854,775,808 to 9,223,372,036,854,775,807 0L
sbyte 8-bit signed integer type -128 to 127 0
short 16-bit signed integer type -32,768 to 32,767 0
uint 32-bit unsigned integer type 0 to 4,294,967,295 0
ulong 64-bit unsigned integer type 0 to 18,446,744,073,709,551,615 0
ushort 16-bit unsigned integer type 0 to 65,535 0

8- Des variables et la déclaration de variable

Une variable est identifiée par un nom, pour une zone de stockage de données que votre programme peut être manipulé. Chaque variable en C# a un type spécifique, qui détermine la taille et la disposition de la mémoire de la variable de l'amplitude de valeurs qui peuvent être stockées dans cette mémoire et l'ensemble des opérations qui peuvent être appliquées à la variable.
La variable peut changer de valeur au cours de son existence dans le programme. Les variables ont une valeur fixe appelée constantes. L'utilisation du mot-clé const pour déclarer une variable constante.
Déclarer une variable:
// Declare a variable.
<Data Type> <Variable name>;

// Declares a variable, and assign a value to it.
<Data Type> <Variable name> = <value>;

// Declare a constant:
const <Data Type> <Variable name> = <value>;
VariableExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class VariableExample
    {   
        static void Main(string[] args)  
        {
            // Declare a constant integer.
            // You can not assign new values for the constants.
            const int MAX_SCORE = 100;

            // Declare an integer variable
            int score = 0;

            // Assign a new value for the variable score.
            score = 90;

            // Declare a string
            string studentName = "Tom";

            // Print value of variable to the Console.
            Console.WriteLine("Hi {0}", studentName);
            Console.WriteLine("Your score: {0}/{1}", score, MAX_SCORE);

            // Wait for the user to enter something and press Enter before ending the program.
            Console.ReadLine();
        }
       

    }
}
L'exécution de l'exemple:

9- Des déclarations Branch

9.1- La déclaration If-else

if est une déclaration qui vérifie une certaines conditions dans  C#. Par exemple: Si  a > b faites quelques choses ....
Les opérateurs de comparaison communs:
Opérateur Signification Exemple
> Plus grand que 5 > 4 est vrai (true)
< Plus petit que 4 < 5 est vrai (true)
>= Plus grand que ou égale à 4 >= 4 est vrai (true)
<= Plus petit que ou égale à 3 <= 4 est vrai (true)
== Égale à 1 == 1 est vrai (true)
!= Différent de  1 != 2 est vrai (true)
&& Et  a > 4 && a < 10
|| Ou  a == 1 || a == 4
// Syntax:
// 
if ( condition )  
{
    // Do somthing here.
}
Exemple:
// Example 1:
if ( 5 < 10 )
{
  Console.WriteLine( "Five is now less than ten");
}

// Example 2:
if ( true )
{
  Console.WriteLine( "Do something here");
}
La structure complềt de la déclaration  if - else if - else:
// Note that at most one block of code will be executed.
// The program checks the conditions from top to bottom.
// When a condition is true, this block will be executed.
// The remaining conditions will be ignored.
...

// If condition1 is true then ..
if (condition1 )  
{
     // Do something if condition1 is true.
}
// Else if condition2 is true then ....
else if(condition2 )  
{
    // Do something here if condition2 is true (condition1 is false).
}
// Else if conditionN is true then ...
else if(conditionN )  
{
     // Do something if conditionN is true 
     // (All the above conditions are false)
}
// Else (All the above conditions are false).
else  {
     //  Do something.
}
IfElseExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class IfElseExample
    {
        static void Main(string[] args)
        {
            // Declare an integer describes your age.
            int age;

            Console.WriteLine("Please enter your age: \n");

            // Declare a variable to store the user input from the keyboard.
            string inputStr = Console.ReadLine();

            // Int32 is a class in the System namespace.
            // Using static method Int32.Parse to convert a string to number
            // and assign to 'age'.
            // (Note: If 'inputStr' is not a number, error will be thrown).
            age = Int32.Parse(inputStr);

            Console.WriteLine("Your age: {0}", age);

            // Check if age less than 80 then ...
            if (age < 80)
            {
                Console.WriteLine("You are pretty young");
            }

            // Else if age between 80 and 100 then
            else if (age >= 80 && age <= 100)
            {
                Console.WriteLine("You are old");
            }
            // Else (The remaining cases)
            else
            {
                Console.WriteLine("You are verry old");
            }

            Console.ReadLine();
        }
    }
}
L'exécution de l'exemple, et le saisissement 81, et consulter les résultats:

9.2- La déclaration Switch-Case

La syntaxe de  switch:
// Use the 'switch' to check the value of a variable.
switch ( <variable> )
{
  case value1:
      // Do something if the value of the variable equal to value1.
      break;
  case value2:
      // Do something if the value of the variable equal to value2.
      break;

  ...
	
  default:
     // The remaining cases.
     break;
}
BreakExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class BreakExample       
    {
        static void Main(string[] args)
        {
            // Require users to select an option.
            Console.WriteLine("Please select one option:\n");

            Console.WriteLine("1 - Play a game \n");
            Console.WriteLine("2 - Play music \n");
            Console.WriteLine("3 - Shutdown computer \n");

             
            // Declare a variable 'option'.
            int option;

            // The string that the user entered from the keyboard
            string inputStr = Console.ReadLine();

            // Convert to integer.
            option = Int32.Parse(inputStr);

            // Check the value of 'option'.
            switch (option)
            {

                case 1:
                    Console.WriteLine("You choose to play the game");
                    break;
                case 2:
                    Console.WriteLine("You choose to play the music");
                    break;
                case 3:
                    Console.WriteLine("You choose to shutdown the computer");
                    break;
                default:
                    Console.WriteLine("Nothing to do...");
                    break;
            }

            Console.ReadLine();
        }
    }
}
L'exécution de l'exemple et le saisissement 2:

Remarque:

Dans ce cas, la commande  break a dit au programme de sortir  switch.
Vous pouvez inclure plusieurs ( case) ensemble pour exécuter un même bloc.
BreakExample2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class BreakExample2
    {
        static void Main(string[] args)
        {
            // Declare a varable and assign value of 3.
            int option = 3;

            Console.WriteLine("Option = {0}", option);

            // Check value of 'option'.
            switch (option)
            {

                case 1:
                    Console.WriteLine("Case 1");
                    break;

                // If value in (2,3,4,5)
                case 2: 
                case 3: 
                case 4: 
                case 5:
                    Console.WriteLine("Case 2,3,4,5!!!");
                    break;
                default:
                    Console.WriteLine("Nothing to do...");
                    break;
            } 

            Console.ReadLine();
        }
    }
}
L'exécution de l'exemple:

10- La boucle dans C#

La boucle (loop) est utilisée pour exécuter de manière répétitive un bloc de déclaration. Cela permet à votre programme d'exécuter à plusieurs reprises un bloc de déclaration à plusieurs reprises, c'est l'une des tâches de base de la programmation.
C# fournit 3 types différents de boucles:
  • FOR
  • WHILE
  • DO WHILE

10.1- La boucle for

La syntaxe de la boucle  for:

for (initialize variable ; condition ; updates new value for variable )
{
        // Execute the block when the condition is true
}
Exemple:
// Example 1:
// Declare a variable x and assign value 0.
// The condition is x < 5
// If x < 5 is true then execute the block.
// After each iteration, the value of x is increased by 1.
for (int  x = 0;  x < 5 ; x = x + 1)
{
    // Do something here when x < 5 is true.
}


// Example 2:
// Declare variable x and assgin value of 2
// The condition is x < 15
// If x < 15 is true then execute the block.
// After each iteration, the value of x is increased by 3.
for (int  x = 2;  x < 15 ; x = x + 3)
{
    // Do something here when x < 15 is true.
}
ForLoopExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class ForLoopExample
    {
        static void Main(string[] args)
        {
            Console.WriteLine("For loop example"); 

            // Declare variable x and assign value of 2.
            // The condition is x < 15
            // If x < 15 is true then execute the block.
            // After each iteration, the value of x is increased by 3
            for (int x = 2; x < 15; x = x + 3)
            {
                Console.WriteLine( );
                Console.WriteLine("Value of x = {0}", x); 
            } 

            Console.ReadLine();
        }
    }
}
L'exécution de l'exemple:

10.2- La boucle while

La syntaxe de la boucle  while:

while (condition)  
{
     // While the 'condition' is true, then execute the block.
}
Exemple:
// Declare a variable x.
int x = 2;

while ( x < 10)
{
    // Do something here when x < 10 is true.
    ...
    	
    // Update value to x.
    x = x + 3;
}
WhileLoopExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class WhileLoopExample
    {
        static void Main(string[] args)
        {
           
            Console.WriteLine("While loop example");
 
            // Declare a variable x and assign value of 2.
            int x = 2;

            // The condition is x < 10.
            // If x < 10 is true then execute the block.
            while (x < 10)
            {
                Console.WriteLine("Value of x = {0}", x);

                x = x + 3; 
            } 

            Console.ReadLine();
        }
    }
}
L'exécution de l'exemple:

10.3- do-while loop

La syntaxe de la boucle  do-while
// Characteristics of the 'do-while' loop is that it will execute the block at least 1 time.
// After each iteration, it will check condition,
// If condition is true, the block will be executed.
do {
    // Do something here.
} while (condition); 
// Note: it should have a semicolon here.
DoWhileLoopExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class DoWhileLoopExample
    {
        static void Main(string[] args)
        { 

            Console.WriteLine("Do-While loop example"); 

            // Declare a variale x and assign value of 2
            int x = 2;

            // Execute the block.
            // After each iteration, it will check condition,
            // If condition is true, the block will be executed.
            do
            {
                Console.WriteLine("Value of x = {0}", x);

                x = x + 3; 

            } while (x < 10);
            // Note: it should have a semicolon here.
            Console.ReadLine();
        }
    }
}
L'exécution de l'exemple:

10.4- La commande break dans la boucle

break est une commande qui peut être située dans un bloc de boucle. Cette commande met fin à la boucle inconditionnellement.
LoopBreakExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class LoopBreakExample
    {
        static void Main(string[] args)
        { 
            Console.WriteLine("Break example");

            // Declare a variable and assign value of 2
            int x = 2;

            while (x < 15)
            {

                Console.WriteLine("----------------------\n");
                Console.WriteLine("x = {0}", x);

                // If x = 5 then exit the loop.
                if (x == 5)
                {
                    break;
                }
                // Increase value of x by 1 (Write brief x = x + 1;).
                x++;
                Console.WriteLine("x after ++ = {0}", x);

            }

            Console.ReadLine();
        }
    }
}
L'exécution de l'exemple:

10.5- La commande continue dans la boucle

continue est une déclaration qui peut être située dans une boucle. Lorsqu'on saisit la déclaration  continue, le programme ignorera les lignes de commande en bloc, en dessous de la commande continue et le début d'une nouvelle boucle.
LoopContinueExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class LoopContinueExample
    {
        static void Main(string[] args)
        { 

            Console.WriteLine("Continue example");

            // Declare a variable and assign value of 2.
            int x = 2;

            while (x < 7)
            {

                Console.WriteLine("----------------------\n");
                Console.WriteLine("x = {0}", x);

                // % operator is used for calculating remainder.
                // If x is even, then ignore the command line below of 'continue',
                // and start new iterator (if condition still true).
                if (x % 2 == 0)
                {
                    // Increase x by 1. (write brief for x = x + 1;).
                    x++;
                    continue;
                }
                else
                {
                    // Increase x by 1. (write brief for x = x + 1;).
                    x++;
                }
                Console.WriteLine("x after ++ = {0}", x);

            }

            Console.ReadLine();
        }
    }
}
L'exécution de l'exemple:

11- Des tableaux dans C#

11.1- Tableau à une seule dimension (uni-dimensionnel)

Ce sont des illustrations du tableau à une seule dimension avec 5 éléments indexés de 0 à 4.
La syntaxe de déclaration un tableau à une seule dimension:
// Way 1:
// Declare an array of int, specifies the elements.
int[] years = { 2001, 2003, 2005, 1980, 2003 };

// Way 2:
// Declare an array of floats, specifying the number of elements.
// (3 elements).
float[] salaries = new float[3];
ArrayExample1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class ArrayExample1
    {
        static void Main(string[] args)
        {
            // Way 1:
            // Declare an array of int, specifies the elements.
            int[] years = { 2001, 2003, 2005, 1980, 2003 };

            // Length is a property of the array, it returns the number of elements.
            Console.WriteLine("Element count of array years = {0} \n", years.Length);

            // Use a for loop to print out the elements of the array.
            for (int i = 0; i < years.Length; i++) {
                Console.WriteLine("Element at {0} = {1}", i, years[i]);
            }

            // Way 2:
            // Declare an array of floats, specifying the number of elements.
            // (3 elements).
            float[] salaries = new float[3];

            // Assign values to the elements.
            salaries[0] = 1000;
            salaries[1] = 1200;
            salaries[2] = 1100;

            Console.ReadLine();
        }
    }
}
L'exécution de l'exemple:

11.2- Tableau à deux dimensions

Ceci est l'illustration d'un tableau bidimensionnel
La syntaxe pour déclarer un tableau bidimensionnel:
// Declare 2-dimensional array, 3 rows & 5 columns. 
// specify the elements.
int[,] a =   new int[,]  {
    {1 , 2 , 3,  4,   5} ,
    {0,  3,  4,  5,   7},
    {0,  3,  4,  0,   0}
};

// Declare a 2-dimensional array, 3 rows & 5 columns
// The element has not been assigned a value.
int[,] a = new int[3,5];
ArrayExample2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class ArrayExample2
    {
        static void Main(string[] args)
        {
            // Declare 2-dimensional array, 3 rows & 5 columns.
            // Specify the elements.
            int[,] a =   { 
                          { 1, 2, 3, 4, 5 },
                          { 0, 3, 4, 5, 7 },
                          { 0, 3, 4, 0, 0 } 
                          };

            // Use a for loop to print out the elements of the array.
            for (int row = 0; row < 3; row++) {
                for (int col = 0; col < 5; col++) {
                    Console.WriteLine("Element at [{0},{1}] = {2}", row, col, a[row,col]);
                }
                Console.WriteLine("-------------");
            }

            // Declare a 2-dimensional array, 3 rows, 5 columns
            // The element has not been assigned a value.
            int[,] b = new int[3, 5];

            Console.ReadLine();
        }
    }
}
L'exécution de l'exemple:

11.3- Tableau d'un tableau

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

namespace HelloCSharp
{
    class ArrayOfArrayExample
    {
        static void Main(string[] args)
        {
            // Declare an array of 3 elements.
            // Each element is another array.
            string[][] teams = new string[3][];

            string[] mu = { "Beckham","Giggs"};
            string[] asenal = { "Oezil", "Szczęsny", "Walcott" };
            string[] chelsea = {"Oscar","Hazard","Drogba" };

            teams[0] = mu;
            teams[1] = asenal;
            teams[2] = chelsea;

            // Use a for loop to print out the elements of the array.
            for (int row = 0; row < teams.Length; row++)
            {
                for (int col = 0; col < teams[row].Length ; col++)
                {
                    Console.WriteLine("Element at [{0}],[{1}] = {2}", row, col, teams[row][col]);
                }
                Console.WriteLine("-------------");
            }
 

            Console.ReadLine();
        }
    }
}
L'execution de l'exemple:

12- Classe, Constructeur et des instances

You need to have a distinction between three concepts:
  • Class
  • Constructor
  • Instance
When we talk about the tree, it is something abstract, it is a class. But when we pointed to a specific tree, it was clear, and that is the instance
Or when we talk about the Person, that's abstract, it is a class. But when pointed at you or me, it is two different instances, the same class of People.
Person.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class Person
    { 
        // This is a Field.
        // To store name of Person.
        public string Name;

        // This is a Constructor, 
        // Used to initialize the object.
        // This constituent has one parameter.
        // Constructor always have the same name as the class
        public Person(string persionName)
        {
            // Assign value of parameter to field 'Name'.
            this.Name = persionName;
        }

        // This is a method return type of string.
        public string GetName()
        {
            return this.Name; 
        }
    }
}
Person class without Main method. Next in PersonTest, we create Person instance from its Constructor
PersonTest.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace HelloCSharp
{
    class PersonTest
    {
        static void Main(string[] args)
        {
            // Create an object of Person class
            // Initialize this object from constructor of Person class.
            Person edison = new Person("Edison");

            // Person class has GetName() method.
            // Using object to call GetName() method.
            String name = edison.GetName();
            Console.WriteLine("Person 1: " + name);

            // Create object of Person class.
            // Initialize this object from Constructor of Person class.
            Person billGate = new Person("Bill Gates");

            // Access the public field of Person.
            // Using the instance to access to field.
            String name2 = billGate.Name;
            Console.WriteLine("Person 2: " + name2);

            Console.ReadLine();
        } 
    }
}
Running the example:

13- Le champ (Field)

In this section we will discuss some of the concepts:
  • Field
    • Normal field
    • static Field
    • const Field
    • readonly Field
FieldSample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class FieldSample
    {
        // This is static field.
        public static int MY_STATIC_FIELD = 100;

        // This is a field.
        public string MyValue;

        // Constructor of FieldSample class.
        public FieldSample(string value)
        {
            this.MyValue = value;
        }
    }
}
FieldSampleTest.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class FieldSampleTest
    {
        static void Main(string[] args)
        {   
            // Print out value of static field.
            // With the static field, you must access it through the class.
            Console.WriteLine("FieldSample.MY_STATIC_FIELD= {0}", FieldSample.MY_STATIC_FIELD);

            // Change value of static field
            FieldSample.MY_STATIC_FIELD = 200;

            Console.WriteLine(" ------------- "); 

            // Create first object.
            FieldSample obj1 = new FieldSample("Value1");

            // With the none-static field, you must access it through object.
            Console.WriteLine("obj1.MyValue= {0}",  obj1.MyValue);  

            // Create second object.
            FieldSample obj2 = new FieldSample("Value2");

           
            Console.WriteLine("obj2.MyValue= {0}" , obj2.MyValue);

            // You can change value of field.
            obj2.MyValue = "Value2-2";

            Console.ReadLine();
        }
     
    }
}
Running the example:

Example readonly & static readonly.

ConstFieldExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace HelloCSharp
{
    class ConstFieldExample
    {
        // A constant field, its value is determined at compile time.
        // You can not assign new values for the constants
        // NOTE: constant is always static.
        public const int MY_VALUE = 100;
 
        // A static field and readonly.
        // Its value is assigned once at the time of the first run.
        public static readonly DateTime INIT_DATE_TIME1 = DateTime.Now;

        // A readonly and none-static field. 
        public readonly DateTime INIT_DATE_TIME2 ;

        public ConstFieldExample()
        {
            // Its value is assigned once at the time of the first run.
            INIT_DATE_TIME2 = DateTime.Now;
        }
    }
}

14- La méthode (Method)

Method
  • Method.
  • static Method
  • sealed Method. (Will be mentioned in the inheritance of the class).
MethodSample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class MethodSample
    {
        public string text = "Some text";

        // Default constructor.
        // (Constructor with no parameters).
        public MethodSample()
        {

        }

        // This is a method return string.
        // This method with no parameter.
        public string GetText()
        {
            return this.text;
        }

        // This is a method with one String parameter.
        // Return void (return nothing).
        public void SetText(string text)
        {
            // this.text: point to 'text' field.
            this.text = text;
        }

        // This is static method
        // return int and has 3 parameters.
        public static int Sum(int a, int b, int c)
        {
            int d = a + b + c;
            return d;
        }
    }
}
MethodSampleTest.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class MethodSampleTest
    {
        static void Main(string[] args) 
        { 
            // Create MethodSample object.
            MethodSample obj = new MethodSample();

            // Call GetText() method.
            // The non-static method must be called through the object.
            String text = obj.GetText();
 
            Console.WriteLine("Text = " + text);

            // Call SetText(string) method.
            // The non-static method must be called through the object.
            obj.SetText("New Text");
 
            Console.WriteLine("Text = " + obj.GetText());

            // The static method must be called through the class.
            int sum = MethodSample.Sum(10, 20, 30);
 
            Console.WriteLine("Sum  10,20,30= " + sum);

            Console.ReadLine();
       }
    }
}
Running the example:

15- L'héritage dans C#

Java allows classes which extend from other class. Class extends another class called subclasses. Subclasses have the ability to inherit the fields attributes, methods from the parent class.
See an example of inheritance in CSharp:
Animal.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    // Animal
    class Animal
    {
        public Animal()
        {

        }

        public void Move()
        {
            Console.WriteLine("Move ...!");
        }
      
    }
}
Cat.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class Cat : Animal
    {
      
        public   void Say()
        {
            Console.WriteLine("Meo");
        } 

        // A method of Cat.
        public void Catch()
        {
            Console.WriteLine("Catch Mouse");
        }
    }
}
Ant.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    // Ant
    class Ant : Animal
    {
    }
}
AnimalTest.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloCSharp
{
    class AnimalTest
    {

        static void Main(string[] args)
        {
            // Create Cat object.
            Cat tom = new Cat();

            // Check if 'tom' is Animal
            // The result is true
            bool isAnimal = tom is Animal;

            // ==> true
            Console.WriteLine("tom is Animal? " + isAnimal);

            // Call Catch method.
            tom.Catch();

            // Call Say() method
            // ==> Meo
            tom.Say();

            Console.WriteLine("--------------------");

            // Declare an Animal object.
            // Create it from Constructor of Cat.
            Animal tom2 = new Cat();

            // Call Move() method.
            tom2.Move();

            Console.WriteLine("--------------------");

            // Create an Ant object. 
            Ant ant = new Ant();

            // Call Move() method, inherited from Animal.
            ant.Move();

            Console.ReadLine();
        }
    }
}
Running the example:

16- L'héritage et le polymorphisme en C #

You can read more "Inheritance and polymorphism in CSharp" at:

View more categories: