Googling ne fait que trouver le mot clé, mais je suis tombé sur un code qui dit
MyVariable = default(MyObject);
et je me demande ce que cela signifie ...
Googling ne fait que trouver le mot clé, mais je suis tombé sur un code qui dit
MyVariable = default(MyObject);
et je me demande ce que cela signifie ...
null
Nullable<T>
il renvoie une initialisé à zéro de la valeurNullable<T>
il renvoie le vide (pseudo-null) valeur (en fait, c'est un nouvel état de la deuxième balle, mais il vaut la peine de rendre explicite)La plus grande utilisation de l' default(T)
est dans les génériques, et des choses comme l' Try...
modèle:
bool TryGetValue(out T value) {
if(NoDataIsAvailable) {
value = default(T); // because I have to set it to *something*
return false;
}
value = GetData();
return true;
}
Comme il arrive, je l'utilise aussi dans certains de la génération de code, où il est une douleur pour initialiser les champs et les variables - mais si vous connaissez le type:
bool someField = default(bool);
int someOtherField = default(int)
global::My.Namespace.SomeType another = default(global::My.Namespace.SomeType);
default
mot clé retournera null
pour les types de référence et zero
pour les types de valeur numérique.
Pour struct
s, il retournera chaque membre de la structure initialisée à zéro ou à zéro selon qu'il s'agisse de types valeur ou référence.
Simple Sample code :<br>
class Foo
{
public string Bar { get; set; }
}
struct Bar
{
public int FooBar { get; set; }
public Foo BarFoo { get; set; }
}
public class AddPrinterConnection
{
public static void Main()
{
int n = default(int);
Foo f = default(Foo);
Bar b = default(Bar);
Console.WriteLine(n);
if (f == null) Console.WriteLine("f is null");
Console.WriteLine("b.FooBar = {0}",b.FooBar);
if (b.BarFoo == null) Console.WriteLine("b.BarFoo is null");
}
}
SORTIE:
0
f is null
b.FooBar = 0
b.BarFoo is null
Valeur par défaut de MyObject
. Voir Mot-clé par défaut dans Code générique (Guide de programmation C #) (MSDN).
L' default
mot-clé renvoie le "par défaut" ou "vide" de la valeur pour une variable du type demandé.
Pour tous les types de référence (défini avec class
, delegate
, etc), c'est - null
. Pour les types de valeur (définie avec struct
, enum
, etc) c'est un des zéros de la valeur (par exemple, int 0
, DateTime 0001-01-01 00:00:00
, etc).
Il est principalement utilisé avec le code générique qui peut être appliqué à la fois de référence et de types de valeur, parce que vous ne pouvez pas affecter null
d'une variable de type valeur.
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.