Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Object classe

 

Date de publication : novembre 2016

Prend en charge toutes les classes de la hiérarchie des classes du .NET Framework et fournit des services de bas niveau à des classes dérivées. Il s'agit de la classe de base fondamentale parmi toutes les classes du .NET Framework. Elle constitue la racine de la hiérarchie des types.

Pour parcourir le code source de .NET Framework pour ce type, consultez la Reference Source.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

System.Object
   L’ensemble des classes, structures, énumérations et délégués.

[SerializableAttribute]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDual)]
[ComVisibleAttribute(true)]
public class Object

NomDescription
System_CAPS_pubmethodObject()

Initialise une nouvelle instance de la classe Object.

NomDescription
System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.

System_CAPS_pubmethodSystem_CAPS_staticEquals(Object, Object)

Détermine si les instances d'objet spécifiées sont considérées comme égales.

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection.

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.

System_CAPS_pubmethodSystem_CAPS_staticReferenceEquals(Object, Object)

Détermine si les instances de Object spécifiées sont identiques.

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.

System_CAPS_noteRemarque

Pour afficher le code source de .NET Framework pour ce type, consultez la Reference Source. Vous pouvez parcourir le code source en ligne, télécharger la référence de consultation hors connexion et parcourir les sources (y compris les correctifs et mises à jour) pendant le débogage ; see instructions.

Langues ne nécessitent généralement pas d’une classe déclare l’héritage de Object , car l’héritage est implicite.

Étant donné que toutes les classes dans le .NET Framework sont dérivées de Object, toutes les méthodes définies dans la Object classe n’est disponible dans tous les objets dans le système. Classes dérivées peuvent et substituer certaines de ces méthodes, notamment :

  • Equals-Prend en charge les comparaisons entre des objets.

  • Finalize-Effectue des opérations de nettoyage avant qu’un objet est 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 explicite qui décrit une instance de la classe.

Si vous concevez une classe, comme une collection, qui doit gérer tout type d’objet, vous pouvez créer des membres de classe qui acceptent des instances de la Object classe. Toutefois, le processus de conversion boxing et unboxing d’un type a un coût de performances. Si vous savez que votre nouvelle classe devra souvent gérer certains types valeur, vous pouvez utiliser une des deux solutions suivantes pour réduire le coût de conversion boxing.

  • Créer une méthode générale qui accepte un Object type et un ensemble de surcharges de méthode spécifique au type qui acceptent chaque type de valeur que votre classe à gérer souvent. S’il existe une méthode spécifique au type qui accepte le type de paramètre appelant, aucun boxing se produit et la méthode spécifique au type est appelée. S’il n’existe aucun argument de la méthode qui correspond au type de paramètre appelant, le paramètre est convertie (boxed) et la méthode générale est appelée.

  • Concevoir 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 que vous 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 avoir à évaluer le paramètre appelant.

Bien qu’il est parfois nécessaire de développer des classes à usage général qui acceptent et retournent Object 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, en fournissant une classe qui est spécifique à la définition et l’obtention des valeurs booléennes élimine le coût de conversion boxing et unboxing des valeurs booléennes.

L’exemple suivant définit un type Point dérivé le Object classe et substitue un grand nombre de méthodes virtuelles de la Object classe. En outre, l’exemple montre comment appeler la plupart des statiques et les méthodes de l’instance du Object classe.

using System;

// The Point class is derived from System.Object.
class Point 
{
    public int x, y;

    public Point(int x, int y) 
    {
        this.x = x;
        this.y = y;
    }

    public override bool Equals(object obj) 
    {
        // If this and obj do not refer to the same type, then they are not equal.
        if (obj.GetType() != this.GetType()) return false;

        // Return true if  x and y fields match.
        Point other = (Point) obj;
        return (this.x == other.x) && (this.y == other.y);
    }

    // Return the XOR of the x and y fields.
    public override int GetHashCode() 
    {
        return x ^ y;
    }

    // Return the point's value as a string.
    public override String ToString() 
    {
        return String.Format("({0}, {1})", x, y);
    }

    // Return a copy of this point object by making a simple field copy.
    public Point Copy() 
    {
        return (Point) this.MemberwiseClone();
    }
}

public sealed class App {
    static void Main() 
    {
        // Construct a Point object.
        Point p1 = new Point(1,2);

        // Make another Point object that is a copy of the first.
        Point p2 = p1.Copy();

        // Make another variable that references the first Point object.
        Point p3 = p1;

        // The line below displays false because p1 and p2 refer to two different objects.
        Console.WriteLine(Object.ReferenceEquals(p1, p2));

        // The line below displays true because p1 and p2 refer to two different objects that have the same value.
        Console.WriteLine(Object.Equals(p1, p2));

        // The line below displays true because p1 and p3 refer to one object.
        Console.WriteLine(Object.ReferenceEquals(p1, p3));

        // The line below displays: p1's value is: (1, 2)
        Console.WriteLine("p1's value is: {0}", p1.ToString());
    }
}

// This code example produces the following output:
//
// False
// True
// True
// p1's value is: (1, 2)
//

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1

Statique public (Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance ne sont pas garantis être thread-safe.

Retour au début
Afficher: