Convertir un type en nullable

Résolu
zigxag Messages postés 142 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 2 octobre 2008 - 17 juil. 2007 à 11:35
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 17 juil. 2007 à 13:11
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 ?

4 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
17 juil. 2007 à 13:11
Pourquoi pas:

int
? x =

null
;


if
(y z) x

Convert
.ToInt32(

"w"
);













<hr />
-Blog-
3
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
17 juil. 2007 à 11:55
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
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
17 juil. 2007 à 12:04
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-
0
zigxag Messages postés 142 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 2 octobre 2008 12
17 juil. 2007 à 12:47
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...
0
Rejoignez-nous