Convertir un type en nullable [Résolu]

Signaler
Messages postés
142
Date d'inscription
jeudi 10 février 2005
Statut
Membre
Dernière intervention
2 octobre 2008
-
cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonjour !

existe-t-il une facon propre, prévue par le framework, pour convertir un type en nullable ?
Par exemple, je voudrais faire ceci :

int? myNullableValue;
if (selectedValue == "0")
   myNullableValue = new Nullable();
else
   myNullableValue = Convert.Toint32(selectedValue); 

...mais je trouve pas ca très joli...
Quelqu'un à une idée ?
A voir également:

4 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
44
Pourquoi pas:

int
? x =

null
;


if
(y z) x

Convert
.ToInt32(

"w"
);













<hr />
-Blog-
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
Alors pour commencer un int ne peux pas etre null ;)

par contre sur une date : tu peux faire Nullable<Datetime> maDate;

et faire des test  :

if (da.HasValue){

Console.Write(da.Value.ToString());

}

-------------------------------------------http://quoideneufaujourdhui.spaces.live.com
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
44
Salut,
Le cast est implicite de x à nullable<x> (et explicite de nullable<x> à x)

int? x =
null;

int y = 3;
x = y;

<hr />
-Blog-
Messages postés
142
Date d'inscription
jeudi 10 février 2005
Statut
Membre
Dernière intervention
2 octobre 2008

merci pour vos réponses !
mais par contre ca plante à la compilation quand jécris ceci :


int? myNullableInt = (DDLDivision.SelectedValue == "0") ? null : Convert.ToInt32(DDLDivision.SelectedValue)


car le compilateur dit qu'il n'existe pas de convertion implicite entre un nullable et un int...
Il faut donc que j'écrive ceci pourque mon code compile :

int? myNullableInt = (DDLDivision.SelectedValue == "0") ? newNullable() : Convert.ToInt32(DDLDivision.SelectedValue)

hum...je ne sais pas pourquoi mais quelque chose me dit qu'il y a une facon plus jolie d'utiliser les types Nullable...