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

    mercredi 26 mai 2010

    Les étapes de la compilation par CSC.exe

    La compilation consiste à fabriquer un assemblage à partir de fichier source écrit en c#. la compilation est prise en charge par le compilateur csc.exe.

    Il passe par deux étapes de compilation:
    1- Préprocessing des fichiers sources : cette étape génère de nouveaux fichier sources , modifié selon des dérectives #

    2- Compilation des fichier sources résultat du préprocessing pour donné un .exe ou un .dll

    lundi 24 mai 2010

    CLR Comon Langage Runtime

    le CLR est une couche logiciel qui gère à l'exécution le code des applications .NET, il est responsable de:
    -hébergement de plusieurs applications dans un même processus Windows
    -compilation du code IL en code machine
    -gestion des exceptions
    -destruction des objets inutiles
    -chargement des assemblages
    -résolution des types

    dimanche 23 mai 2010

    Lanagage IL

    lors de la compilation tous les assemblages vont contenir du code écrit en langage IL, c'est un langage objet et il constitue un point commun entre les différents langage .net(c#, VB.net, ...).
    le langage IL n'est pas un langage machine, il sera compilé à l'exécution en un langage machine cible, cela permet aux application .NET distribuées sous forme d'assemblage contenant du code IL , d'être exécutable sur tous Système d'exploitation.

    Au moment de l'exécution d'un assemblage le CLR compile le code IL avec le mécanisme "JUST IN TIME", cad compiler le corps d'une méthode du langage IL en langage machine , juste avant le premier appel de la méthode.

    Qu'est ce que .NET

    .Net est une plateforme de développement logiciel. le mot .Net englobe l'architecture interne, le format des composants, les langages de programmation, les classes standard et les outils.
    .Net se implémente plusieurs SPÉCIFICATION:
    -des nouveaux langages (c#, IL, ...)
    -des protocoles d'échange de données (comme le format SOAP)

    la technologie .Net se compose de :

    -un ensemble de langage (c#, VB.Net), ils respecte la spécification(Common language Spécification) CLS. les types de base utilisé par ces langages respectent eux aussi le spécification CTS (Common Type System)

    -un ensemble de classe de base BCL(Base Class Library).c'est le frameWork .net

    -Une couche logicielle CLR qui respecte la spécification CLI (Common langage Infrastructure), elle est responsable de l'exécution des applications .NET, elle ne comprend que le langage IL, cette couche est la responsable durant l'exécution de la compilation du code IL en langage machine

    Quesque vous allez trouver ici

    j'ai crée ce blog pour présenter mon expérience dans le technologie .net c#
    -les définitions
    -les ateliers
    -les Les Tutoriaux c# .net