Classe System.Object

Cet article vous offre des remarques complémentaires à la documentation de référence pour cette API.

La Object classe est la classe de base ultime de toutes les classes .NET ; il s’agit de la racine de la hiérarchie de types.

Étant donné que toutes les classes dans .NET sont dérivées de Object, chaque méthode définie dans la Object classe est disponible dans tous les objets du système. Les classes dérivées peuvent remplacer certaines de ces méthodes, notamment :

  • Equals: prend en charge les comparaisons entre les objets.
  • Finalize: effectue des opérations de propre up avant qu’un objet soit automatiquement récupéré.
  • GetHashCode: génère un nombre correspondant à la valeur de l’objet pour prendre en charge l’utilisation d’une table de hachage.
  • ToString: fabrique une chaîne de texte lisible par l’homme qui décrit une instance de la classe.

Les langages ne nécessitent généralement pas de classe pour déclarer l’héritage, car l’héritage Object est implicite.

Considérations relatives aux performances

Si vous concevez une classe, telle qu’une collection, qui doit gérer n’importe quel type d’objet, vous pouvez créer des membres de classe qui acceptent des instances de la Object classe. Toutefois, le processus de boxe et de déboxing d’un type entraîne un coût de performances. Si vous savez que votre nouvelle classe gère fréquemment certains types de valeurs, vous pouvez utiliser l’une des deux tactiques pour réduire le coût de boxe.

  • Créez une méthode générale qui accepte un Object type et un ensemble de surcharges de méthode spécifiques au type qui acceptent chaque type de valeur que vous attendez à ce que votre classe gère fréquemment. Si une méthode spécifique à un type existe qui accepte le type de paramètre appelant, aucun boxing ne se produit et la méthode spécifique au type est appelée. S’il n’existe aucun argument de méthode qui correspond au type de paramètre appelant, le paramètre est boxé et la méthode générale est appelée.
  • Concevez votre type et ses membres pour utiliser des génériques. Le Common Language Runtime crée un type générique fermé lorsque vous créez une instance de votre classe et spécifiez un argument de type générique. La méthode générique est spécifique au type et peut être appelée sans boxer le paramètre appelant.

Bien qu’il soit parfois nécessaire de développer des classes à usage général qui acceptent et retournent Object des types, vous pouvez améliorer les performances en fournissant également une classe spécifique au type pour gérer un type fréquemment utilisé. Par exemple, la fourniture d’une classe spécifique à la définition et à l’obtention de valeurs booléennes élimine le coût des valeurs booléennes boxing et unboxing.