ABAZE DevS Blog

La Développement une vie une Passion

Archive for mars, 2011

STRUCTS

Posted by abaze17 on 10th mars 2011

Structs partagent la plupart du même syntaxe que les classes, bien que structs sont plus limitées que les classes:

• Dans une déclaration de struct, les champs ne peuvent pas être initialisés sauf si elles sont déclarées comme const ou statique.

• Un struct ne peut pas déclarer un constructeur par défaut (un constructeur sans paramètres) ou un destructor.

• Structs sont copiés sur la cession. Quand un struct est affecté à une nouvelle variable, toutes les données sont copiées, et toute modification apportée à la nouvelle copie ne change pas les données de la copie originale. Ceci est important de se rappeler lorsque l’on travaille avec des collections de types de valeur tels que Dictionnaire .

• Structs sont des types de valeur et les classes sont des types de référence.

• Contrairement aux classes, structs peuvent être instanciés sans l’aide d’un nouvel opérateur.

• Structs peut déclarer des constructeurs qui ont des paramètres.

• Un struct ne peut pas hériter d’une autre struct ou de classe, et il ne peut pas être la base d’une classe. Tous les structs héritent directement de System.ValueType, qui hérite de System.Object.

• Un struct peut implémenter des interfaces.

• Un struct peut être utilisé comme un type nullable et peut être attribué une valeur nulle.

public struct CoOrds

{

public int x, y;

public CoOrds(int p1, int p2)

{

x = p1;

y = p2;

}

}

il est une erreur de définir un constructeur par défaut (parameterless) pour une struct. Il est également une erreur d’initialisation d’un champ d’instance dans un corps de structure. Vous pouvez initialiser les membres de struct uniquement à l’aide d’un constructeur paramétré ou en accédant aux membres individuellement après la struct est déclarée. Tous les membres privés ou autrement inaccessibles peuvent être initialisés seulement dans un constructeur.

class TestCoOrds
{
    static void Main()
    {
        // Initialize:
        CoOrds coords1 = new CoOrds();
        CoOrds coords2 = new CoOrds(10, 10);

        // Display results:
        Console.Write("CoOrds 1: ");
        Console.WriteLine("x = {0}, y = {1}", coords1.x, coords1.y);

        Console.Write("CoOrds 2: ");
        Console.WriteLine("x = {0}, y = {1}", coords2.x, coords2.y);

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }

}

Posted in .C# 4.5 | No Comments »

 

Créer un Blog | Nouveaux blogs | Top Tags | 14 articles | blog Gratuit | Abus?