85 votes

Quelle est l'utilisation du mot clé `default` en C #?

  1. Quelle est l'utilisation de default mot clé en C #?
  2. Est-ce introduit en C # 3.0?

112voto

Andrew Hare Points 159332

Le mot clé default est contextuel car il a plusieurs utilisations. Je suppose que vous vous référez à sa nouvelle version C # 2 dans laquelle elle retourne la valeur par défaut d'un type. Pour les types de référence, il s'agit de null et pour les types de valeur, il s'agit d'une nouvelle instance entièrement mise à zéro.

Voici quelques exemples pour illustrer ce que je veux dire:

 using System;

class Example
{
    static void Main()
    {
        Console.WriteLine(default(Int32)); // Prints "0"
        Console.WriteLine(default(Boolean)); // Prints "False"
        Console.WriteLine(default(String)); // Prints nothing (because it is null)
    }
}
 

81voto

Mehdi Golchin Points 5578

Vous pouvez également utiliser default pour obtenir la valeur par défaut d'un Generic Type également.

 public T Foo<T>()
{
    .
    .
    .
    return default(T);
}
 

35voto

Marc Gravell Points 482669

L'utilisation la plus courante est avec les génériques; alors qu'il travaille pour "les" types (c - default(string) etc), ce qui est très rare dans la main de code.

Je ne, cependant, l'utilisation de cette approche lors de la génération de code, car cela signifie que je n'ai pas besoin de coder en dur les différentes valeurs par défaut - je peux juste imaginer le type et l'utilisation, default(TypeName) dans le code généré.

Dans les génériques, l'utilisation classique est l' TryGetValue modèle:

public static bool TryGetValue(string key, out T value) {
    if(canFindIt) {
        value = ...;
        return true;
    }
    value = default(T);
    return false;
}

Ici, nous avons pour affecter une valeur à la sortie de la méthode, mais l'appelant ne devrait pas vraiment attention à ce qu'il est. Vous pouvez contraste avec la contrainte de constructeur:

public static T CreateAndInit<T>() where T : ISomeInterface, new() {
    T t = new T();
    t.SomeMethodOnInterface();
    return t;
}

14voto

jrista Points 20950

Le défaut de mots clés ont des sémantiques différentes en fonction de son contexte d'utilisation.

La première utilisation est dans le cadre d'une instruction switch, disponible depuis C# 1.0:
http://msdn.microsoft.com/en-us/library/06tc147t%28VS.80%29.aspx

La deuxième utilisation est dans le contexte de génériques, lors de l'initialisation d'un type générique instance, disponible depuis C# 2.0:
http://msdn.microsoft.com/en-us/library/xwth0h0d%28VS.80%29.aspx

5voto

Le mot-clé "default" (à part Switch-Case) vous aide à initialiser l'instance d'un objet tel que class, list and more types. Il est utilisé en raison de sa propriété générique, qui vous permet d'affecter la valeur par défaut aux types lorsque vous ne le connaissez pas. valeur comme moyen avancé pour éviter les erreurs dans votre code (futur).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X