Comment tester si une structure est renseignée ou non ?
3 réponses
ShadowFil
Bonjour,
Par exemple, l'utilisateur peut ou non renseigner une date dans une forme.
Alors, dans ma classe, j'aimerais déterminer si ma variable de type DateTime
est renseignée ou non. Mais comme le type DateTime est une structure, je ne
peux pas faire le test suivant :
DateTime date;
if (date != null)
return false; // date non saisie
else
return true; // date saisie
Car le compilateur me dit que le else ne sera jamais exécuté. Pourtant, la
variable n'est pas initialisée !
Quelle est la bonne pratique pour savoir si une structure est renseignée ou
non ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Philippot
Bonjour,
Par exemple, l'utilisateur peut ou non renseigner une date dans une forme. Alors, dans ma classe, j'aimerais déterminer si ma variable de type DateTime est renseignée ou non. Mais comme le type DateTime est une structure, je ne peux pas faire le test suivant :
DateTime date;
if (date != null) return false; // date non saisie else return true; // date saisie
Car le compilateur me dit que le else ne sera jamais exécuté. Pourtant, la variable n'est pas initialisée !
Il a raison :-) .
Vous ne vous posez pas la question au bon endroit :-) . Vous créez une variable de type DateTime et vous l'initialisez avec une valeur par défaut par précaution (l'heure courante par exemple).
Ensuite, vous nous dîtes que cette variable sera renseignée par l'utilisateur. Cela veut donc dire que vous allez lui proposer un moyen d'entrer cette date. OK? Et ce que vous allez faire tout de suite derrière, c'est valider par un moyen quelconque, au niveau de l'interface utilisateur, les infos entrées. Connaissez vous l'existence du contrôle DateTimePicker?
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Bonjour,
Par exemple, l'utilisateur peut ou non renseigner une date dans une
forme. Alors, dans ma classe, j'aimerais déterminer si ma variable de
type DateTime est renseignée ou non. Mais comme le type DateTime est
une structure, je ne peux pas faire le test suivant :
DateTime date;
if (date != null)
return false; // date non saisie
else
return true; // date saisie
Car le compilateur me dit que le else ne sera jamais exécuté.
Pourtant, la variable n'est pas initialisée !
Il a raison :-) .
Vous ne vous posez pas la question au bon endroit :-) . Vous créez une
variable de type DateTime et vous l'initialisez avec une valeur par
défaut par précaution (l'heure courante par exemple).
Ensuite, vous nous dîtes que cette variable sera renseignée par
l'utilisateur. Cela veut donc dire que vous allez lui proposer un moyen
d'entrer cette date. OK? Et ce que vous allez faire tout de suite
derrière, c'est valider par un moyen quelconque, au niveau de
l'interface utilisateur, les infos entrées. Connaissez vous l'existence
du contrôle DateTimePicker?
Par exemple, l'utilisateur peut ou non renseigner une date dans une forme. Alors, dans ma classe, j'aimerais déterminer si ma variable de type DateTime est renseignée ou non. Mais comme le type DateTime est une structure, je ne peux pas faire le test suivant :
DateTime date;
if (date != null) return false; // date non saisie else return true; // date saisie
Car le compilateur me dit que le else ne sera jamais exécuté. Pourtant, la variable n'est pas initialisée !
Il a raison :-) .
Vous ne vous posez pas la question au bon endroit :-) . Vous créez une variable de type DateTime et vous l'initialisez avec une valeur par défaut par précaution (l'heure courante par exemple).
Ensuite, vous nous dîtes que cette variable sera renseignée par l'utilisateur. Cela veut donc dire que vous allez lui proposer un moyen d'entrer cette date. OK? Et ce que vous allez faire tout de suite derrière, c'est valider par un moyen quelconque, au niveau de l'interface utilisateur, les infos entrées. Connaissez vous l'existence du contrôle DateTimePicker?
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
DVDB
Petite précision:DateTime est une classe (type en terminologie .NET) et pas une structure.
Si vous etes en .NET 2.0: Certains types sont dits nullables. C'est le cas de DateTime. Vous pouvez définir votre date de la manière suivante: System.Nullable<DateTime> MaDate; Ceci est la définition dite générique.
Vous pouvez aussi écrire: DateTime? MaDate; Tout est dans le point d'interrogation qui signifie "nullable"...
Dans les deux cas, MaDate se verra munie d'une propriété HasValue que vous pouvez tester (ceci est vrai pour tous les types nullables).
"ShadowFil" a écrit :
Bonjour,
Par exemple, l'utilisateur peut ou non renseigner une date dans une forme. Alors, dans ma classe, j'aimerais déterminer si ma variable de type DateTime est renseignée ou non. Mais comme le type DateTime est une structure, je ne peux pas faire le test suivant :
DateTime date;
if (date != null) return false; // date non saisie else return true; // date saisie
Car le compilateur me dit que le else ne sera jamais exécuté. Pourtant, la variable n'est pas initialisée !
Quelle est la bonne pratique pour savoir si une structure est renseignée ou non ?
Merci pour votre aide.
Petite précision:DateTime est une classe (type en terminologie .NET) et pas
une structure.
Si vous etes en .NET 2.0:
Certains types sont dits nullables. C'est le cas de DateTime. Vous pouvez
définir votre date de la manière suivante:
System.Nullable<DateTime> MaDate;
Ceci est la définition dite générique.
Vous pouvez aussi écrire:
DateTime? MaDate;
Tout est dans le point d'interrogation qui signifie "nullable"...
Dans les deux cas, MaDate se verra munie d'une propriété HasValue que vous
pouvez tester (ceci est vrai pour tous les types nullables).
"ShadowFil" a écrit :
Bonjour,
Par exemple, l'utilisateur peut ou non renseigner une date dans une forme.
Alors, dans ma classe, j'aimerais déterminer si ma variable de type DateTime
est renseignée ou non. Mais comme le type DateTime est une structure, je ne
peux pas faire le test suivant :
DateTime date;
if (date != null)
return false; // date non saisie
else
return true; // date saisie
Car le compilateur me dit que le else ne sera jamais exécuté. Pourtant, la
variable n'est pas initialisée !
Quelle est la bonne pratique pour savoir si une structure est renseignée ou
non ?
Petite précision:DateTime est une classe (type en terminologie .NET) et pas une structure.
Si vous etes en .NET 2.0: Certains types sont dits nullables. C'est le cas de DateTime. Vous pouvez définir votre date de la manière suivante: System.Nullable<DateTime> MaDate; Ceci est la définition dite générique.
Vous pouvez aussi écrire: DateTime? MaDate; Tout est dans le point d'interrogation qui signifie "nullable"...
Dans les deux cas, MaDate se verra munie d'une propriété HasValue que vous pouvez tester (ceci est vrai pour tous les types nullables).
"ShadowFil" a écrit :
Bonjour,
Par exemple, l'utilisateur peut ou non renseigner une date dans une forme. Alors, dans ma classe, j'aimerais déterminer si ma variable de type DateTime est renseignée ou non. Mais comme le type DateTime est une structure, je ne peux pas faire le test suivant :
DateTime date;
if (date != null) return false; // date non saisie else return true; // date saisie
Car le compilateur me dit que le else ne sera jamais exécuté. Pourtant, la variable n'est pas initialisée !
Quelle est la bonne pratique pour savoir si une structure est renseignée ou non ?
Par exemple, l'utilisateur peut ou non renseigner une date dans une forme. Alors, dans ma classe, j'aimerais déterminer si ma variable de type DateTime est renseignée ou non. Mais comme le type DateTime est une structure, je ne peux pas faire le test suivant :
DateTime date;
if (date != null) return false; // date non saisie else return true; // date saisie Car le compilateur me dit que le else ne sera jamais exécuté. Pourtant, la variable n'est pas initialisée !
Quelle est la bonne pratique pour savoir si une structure est renseignée ou non ?
Par exemple, l'utilisateur peut ou non renseigner une date dans une
forme. Alors, dans ma classe, j'aimerais déterminer si ma variable de
type DateTime est renseignée ou non. Mais comme le type DateTime est
une structure, je ne peux pas faire le test suivant :
DateTime date;
if (date != null)
return false; // date non saisie
else
return true; // date saisie
Car le compilateur me dit que le else ne sera jamais exécuté.
Pourtant, la variable n'est pas initialisée !
Quelle est la bonne pratique pour savoir si une structure est
renseignée ou non ?
Par exemple, l'utilisateur peut ou non renseigner une date dans une forme. Alors, dans ma classe, j'aimerais déterminer si ma variable de type DateTime est renseignée ou non. Mais comme le type DateTime est une structure, je ne peux pas faire le test suivant :
DateTime date;
if (date != null) return false; // date non saisie else return true; // date saisie Car le compilateur me dit que le else ne sera jamais exécuté. Pourtant, la variable n'est pas initialisée !
Quelle est la bonne pratique pour savoir si une structure est renseignée ou non ?