mardi 22 juin 2010

Collection Séquences en .net

  • L'utilisation de foreach et de in est possible sur n'importe quel type qui implémente l'interface System.Collection.IEnumerable.
  • Les séquence :  les séquences sont des tableaux dont la taille varie au fur et à mesure de l'ajout ou de la suppression d'éléments.
  • Interface System.Collections.Generic.ICollection :
public interface ICollection : IEnumerable

==> toutes les classes collections implémente linterface System.Collection.Icollection

  • Interface System.Collection.generic.IList :
public interface IList :ICollection,IEnumerable

  • Classe System.Collections.Generic.List
  public Class List :Ilist,ICollection,IEnumerable,IListe,ICollection,IEnumerable  

Cette classe remplace la classe System.Collection.ArrayList dans .Net1.x
La classe List<T> est une classe générique
La classe List demande d'allocation de mémoire lorsque le nombre d'éléments de la liste grandit.
Comme les tableaux l'accée aux éléments d'une liste à partir d'un indexe se fait en un temps constant

  • Les interfaces System.Collection.ComponentModel.IBindingList et System.ComponentModel.IlistSource
.Net2.0 présente des facilités pour lier une source de donnée à des contrôles d'affichage de données.
Une Source de donnée est souvent une liste de donnée. Pour liée une tel liste de donnée à un contrôle d'affichage ces technologie requièrent une classe qui implémente IBindingList telle que le classe System.ComponentModel.BindingListou une classe qui implément IListeSource

  • La Classe System.Collection.Generic.LinkedList
public Class LinkedList:ICollection,IEnumerable,ICollection,IEnumerable,ISerializable,IDeserialisationCallback

c'est une classe doublement liée, c'est une collection de nœuds liés les uns aux autres , chaque nœud est lié au nœud qui le précède et au nœud qui le suit. 

l'accès à un élément se fait en un temps proportionnel au nombre  au nombre d'éléments tandis que que l'insertion ou la suppression d'un élément se fait en un temps constant.

  • La Classe System.Collection.Generic.Queue
 public Class Queue:ICollection, IEnumerable,ICollection,IEnumerable
C'est l'implémentation d'un file d'attente pour traiter des message dans l'ordre d'arrivé.
  • La Classe System.Collection.Generic.Stack
 public ClassStack :ICollection, IEnumerable,ICollection,IEnumerable


C'est l'implémentation d'un LIFO

samedi 5 juin 2010

énumération

les énumérations sont de type valeur
Un énumération ne peut être déclaré que dans une classe, il ne peut pas être déclaré dans une méthode
class Program
{
            enum Jours { lun, mar, mer, jeu, ven, sam, dim };
            static void Main(string[] args)                                                                                                            
             {
                       Jours jourDeStage;
                     //variable de type "Jours"
                      jourDeStage = Jours.jeu;
                    Console.WriteLine(jourDeStage); Console.ReadLine();
            }
}

Tableau

à une seule dimension de
déclaration :
int[] monTableau = new int[7];
string[] montableau=new string[7]

initialisation : 
int[] monTableau = new int[] { 345, 0, -25, 7, 42, 23, 1337 };
int[] monTableau = { 345, 0, -25, 7, 42, 23, 1337 };

Dimension multiples

int[,] monTableau = { { 11, 12, 22, 33, 34, 44,45 } , { 21, 22, 23, 24, 25, 26,27 } };

Le type valeur et le type référence

- Les données de type valeur sont stockés dans la pile.
- Les données de type référence sont stocké dans une partie de la mémoire appelée le tas tandis qu’une référence pointant vers celle-ci se trouve dans la pile.

Conversions de données

  1. Cast implicite: le cast implicite n’entraine pas de perte de données. Par exemple si on veut convertir un type «int» en un type «long», la conversion ne posera jamais problème car le type «long» englobe le type «int».
  1. Cast Explicite: c'est un cast qui peut poser une perte de données , il faut dans ce cas mettre le type désiré entre parenthèses
  2.  
  3. Conversion d’une chaine en nombre :                                                                                            Pour convertir une chaîne en nombre on va utiliser la fonction « Parse » précédée du type voulu. Par exemple si l’on veut convertir « x » en entier on va faire «int.Parse(x)» si on le veut en décimal on écrira «float.Parse(x)» ou en « long » « long.Parse(x) » etc
  4. Conversion en objet  : Boxing                                                                                                       int nombre = 12;  
         //Boxing objec
         t MonObjet = nombre;
         //Unboxing
         int j = (int)MonObjet;                                                                                                                                            

    mercredi 2 juin 2010

    Opérateurs d’incrémentation

    Les Opérateur d’incrémentation dérivent d’une écriture condensée.

    variable++ , variable-- +1 ou -1 après utilisation de la variable
    ++variable , --variable +1 ou -1 avant l’utilisation de la variable

    mardi 1 juin 2010

    les variables

    la déclaration de la variable va réserver un espace en mémoire
    Mot clé Le Type de notre variable<< Place réservée en mémoire
    bool Valeur booléenne 8 bits
    char Caractère Ascii 16 bits
    string Chaîne de caractères *
    sbyte De -128 à 127 8 bits
    byte De 0 à 255 8 bits
    short De -32768 à 32767 16 bits
    ushort De 0 à 65535 16 bits
    int De -2147483648 à 2147483647 32 bits
    uint De 0 à 4294967295 32 bits
    long De -9223372036854775808 à
    9223372036854775807
    64 bits
    ulong De 0 à 18446744073709551615 64 bits
    float De 1.5 x 10E-45 à 3.4 x 10E38 64 bits
    double De 5.0 x 10e-324 à 1.7 x 10e308 64 bits
    decimal De 1.0 x 10e-28 à 7.9 x 10e28 128 bits