Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Object, classe

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.

System.Object
  Toutes les classes, structures, énumérations et tous les délégués.

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

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

Le type Object expose les membres suivants.

  NomDescription
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreObjectInitialise une nouvelle instance de la classe Object.
Début

  NomDescription
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEquals(Object, Object)Détermine si les instances d'objet spécifiées sont considérées comme égales.
Méthode protégéePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreFinalize 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.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetHashCodeSert de fonction de hachage par défaut.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetTypeObtient le Type de l'instance actuelle.
Méthode protégéePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreMemberwiseCloneCrée une copie superficielle de l'objet Object actuel.
Méthode publiqueMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreReferenceEqualsDétermine si les instances de Object spécifiées sont identiques.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreToStringRetourne une chaîne qui représente l'objet actif.
Début

Les langages n'exigent généralement pas qu'une classe déclare l'héritage de Object, car l'héritage est implicite.

Comme toutes les classes du .NET Framework sont dérivées de Object, toutes les méthodes définies dans la classe Object sont disponibles dans la totalité des objets du système. Les classes dérivées peuvent substituer certaines de ces méthodes, notamment :

  • Equals - Prend en charge les comparaisons entre objets.

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

Considérations sur les performances

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

  • Créé une méthode générale qui accepte un type Object, et un ensemble de surcharges de méthodes spécifiques au type qui acceptent chaque type valeur que votre classe est appelée à gérer souvent. S'il existe une méthode spécifique au type qui accepte le type de paramètre appelant, le boxing n'est pas effectué et la méthode spécifique au type est appelée. En l'absence d'un argument de méthode correspondant au type de paramètre appelant, le paramètre est converti (boxing) et la méthode générale 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 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 convertir (boxing) le paramètre appelant.

Bien qu'il soit parfois nécessaire de développer des classes à usage général qui acceptent et retournent des types Object, vous pouvez améliorer les performances en fournissant également une classe spécifique au type pour gérer un type utilisé fréquemment. Ainsi, l'utilisation d'une classe spécifique pour la définition et l'obtention de valeurs booléennes permet d'éviter les coûts associés au boxing et à l'unboxing de ces valeurs.

L'exemple suivant définit un type Point dérivé de la classe Object et substitue un grand nombre des méthodes virtuelles de la classe Object. Par ailleurs, l'exemple montre comment appeler la plupart des méthodes statiques et d'instance de la classe Object.


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)
//


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft