Trucs et astuces pour les classes

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 245 fois - Téléchargée 30 fois

Contenu du snippet

Voici quelques astuces pour la conception de classes.

Source / Exemple :


using System;

class ClassePrincipale
{
   public static void Main()
   {
      Classe2 test=new Classe2();
      Console.Out.WriteLine("Valeur de la variable a: " + test.a);
   }
}

/*

    • Cette classe ne peut avoir d'héritier (grace a sealed).
  • /
sealed class ClasseNonHéritable { } /*
    • On ne peut créer d'objet de cette classe.
    • Son constructeur étant privé.
    • On utilise private pour un constructeur lorsqu'une classe ne
    • possède que des membres static.
  • /
class ClasseNonInstanciable { private ClasseNonInstanciable() { } } /*
    • Cette classe possède un constructeur static qui est appelé avant
    • le constructeur par défaut. Il sert généralement a initialiser les
    • membres static.
  • /
class ClasseAvecConstructeurStatic { public static int a; static ClasseAvecConstructeurStatic() { a=123; } public ClasseAvecConstructeurStatic() { } } /*
    • Quand une classe hérite, le constructeur par défaut de ses
    • Classes-mères sont appelés avant le sien.
    • Cet exemple montre comment appeler un autre constructeur
    • que celui par défaut de la classe-mère Classe1.
  • /
class Classe1 { public int a; public Classe1() { a=1; } public Classe1(int a) { this.a=a; } } class Classe2 : Classe1 { public Classe2() : base(2) //appel de Classe1(int a). { } }

A voir également

Ajouter un commentaire

Commentaires

Messages postés
370
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010

Le truc le plus interessants a mes yeux sont :
-- les class sealed, qui ne peuvent être héritées
-- un constructeur qui peut appeler à un autre constructeur de la même classe

Exemple :

Class Foo : Bar
{
public Foo(int a, int b, int option)
: base(b)
{
// initialisation de la classe
}
public Foo(int a, int b, int option)
: this(a, b, une_valeur_par_defaut) // Permis seulement en C# à ma connaissance !!!
{}
}
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
c partique, merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.