- Quelle est l'utilisation de
default
mot clé en C #? - Est-ce introduit en C # 3.0?
Réponses
Trop de publicités? 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)
}
}
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;
}
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
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).