Le langage C#
Voici une fiche résumant les syntaxes principales du langage C#. La logique du langage reste très proche de celle du Java.
Rappels
Espace de nommage
using System;
namespace Projet { … }
Types et conversion
int i = 1;
float s = 1.0f;
double d = 1.0;
int k = (int) (s);
Chaînes de caractères
string g = "Hello !\n"
Tableaux 1D
int[] T = new int[100];
int[] T = new int[] { 5, 6, 7 };
for(int i=0;i<T.length;i++) Aff(T[i]);
foreach (int v in T) Aff(v);
Tableaux 2D
int[,] K = new int[2,2];
K = new int[,] {{4, 5,},{6,7}};
Aff(K[1,2]);
Attention, la syntaxe T[1][2] existe en C# mais s’utilise dans un tout autre contexte, à ne pas utiliser.
Clonage
// Choix 1 :
int [] T2 = new int[T1.Length];
T1.CopyTo(T2,0) ;
// Choix 2 :
int [] T2 = (int []) T1.Clone();
Propriétés
class P
{
private string _Nom;
public string Nom
{
get { return _Nom; }
set { _Nom = value; }
}
// ou
public int Age { get; set; }
}
Passage par référence des valeurs
void fnt2(ref int b) { b++ ; }
void fnt1()
{
int a = 7 ;
fnt2(ref a);
aff(a); // 8
}
Héritage
class A
{
public A() {…}
}
class B : A
{
public B() : base() {…}
}
Constructeurs
class Cercle
{
// CTR par défaut
public int x = 0; // init explicite
public int y; // init implicite
public Cercle() // CTR sans argument
{
x = 10 ; y = 10 ;
}
public Cercle(int _x, int _y)
{
x = _x ; y = _y ;
}
}
Cercle c1 = new Cercle();
Cercle c2 = new Cercle(4,5);
Cercle [] v = new Cercle[5];
Polymorphisme
class A
{
public virtual void Aff() {…}
}
class B : A
{
public override void Aff() {…}
}
Conteneurs génériques
using System.Collections.Generic;
List<T> : Tableau dynamique
Stack<T> : Pile
LinkedList<T> : Liste doublement chainée
Dictionnary<K,V> : Couples clé/valeur
Classe générique
public class Stack<T>
{
T[] m_Items;
public void Push(T item) {…}
public T Pop() {…}
}
Stack<int> stack = new Stack<int>();
stack.Push(1);
int number = stack.Pop();