Bonjour,
Dans mon code j'ai variable de type décimal et je cherche à savoir s'il elle vaut null.
Si quelqu'un peut m'aider.
Merci d'avance
Bonjour,
Dans mon code j'ai variable de type décimal et je cherche à savoir s'il elle vaut null.
Si quelqu'un peut m'aider.
Merci d'avance
il ne suffit pas de tester si myDecimal == null ?
ou alors tu es dans un dataset et le champ qui est decimal est null :
Le myDecimal == null ne compile pas,
Pour info je ne suis pas dans un data set.
Le type decimal est nullable, j'ai besoin de cette propriété mais le problème c'est que je ne sait pas savoir si mon decimal est null.
mets nous le code qui ne compile pas, ça sera plus simple que d'en parler dans le vide
Je n'ai pas de code qui ne compile pas je dis juste que la réponse
Mondecimal == null; ne compile pas car l'opérateur == ne peut pas être appliqué tout simplement.
Voilà si vous avez une idée
la question est : peut il vraiment être null ?
si j'ai bien compris, il fonctionne de la même manière que le type int c'est à dire que c'est un "value type" donc aucune chance à mon avais qu'il puisse être nul. Il peut contenir n'importe quelle valeur s'il n'est pas initialisé mais la valeur null ne signifie rien pour ce type
Je viens de voire ça et c'est là mon pb c'est qu"il peut contenir n'importe quoi et pas null.
Je ne sais pas comment faire existe t-il un type qui peut être nullable.
Es ce que lorsqu'il n'est pas initialisé la valeur est toujour la même ?
Si c'est le cas je peux peut être m'en sortir.
Avec le Framework v2 (beta 2 sûr, la 1 aussi je pense), les "Nullable Types" ont fait leur apparition. Ca correspondrait à ce que tu cherches je pense.Envoyé par Emilio04
Pour définir un "Nullable Type" il faut ajouter un ? après le type :
La propriété HasValue permet de savoir si la variable contient quelque chose ou non et la propriété Value permet de récupérer le contenu de la variable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part decimal? valeur = null
Un accès à la propriété Value si HasValue est false renvoie une exception.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (valeur.HasValue) { Console.WriteLine(valeur.Value); }
Pour plus d'infos => Nullable Types
Tout cela est bien intéressant, je ne savais pas..
Cela dit, je pense que dans ton cas, le fait d'initialiser la variable et de tesetr sa valeur (-1 par exemple) devrait suffir ...
OK merci de vos réponse mais j'ai deux soucis le premier c'est que je ne peux pas passer à la version 2 du framework.
Deuxième le fait de mettre -1 me pose pb car mon décimal sert à alimenter une liste déroulante et obligatoirement ça affiche -1 et donc ça ne me vas pas.
Il faut que je me définisse mon propre type décimal qui serait nullable si quelqu'un peut m'aider je suis prenneur
Merci d'avance
pour quoi ne pas faire un test avant l'ajout dans la liste déroulante ?Envoyé par Emilio04
du genre si c'est = à -1 alors tu le met pas ?
Et puis mettre un null dans une liste déroulante je sais pas si ça leve pas une execption ...
Peux tu expliquer plus ce que tu cherches à faire ! Car là je pense que la solution n'est pas du côté du Decimal mais ailleurs !
A quoi sert ton Decimal par rapport à ta combobox ?
a la remplir non ?Envoyé par DrQ
il veux afficher des nombres très précis dans une combobox ?
Decimal n'est pas nullable !Envoyé par Emilio04
Je te propose de faire ca quant tu le crée :
c'est la seule façon d'initialiser ta valeur à la création !
Code : Sélectionner tout - Visualiser dans une fenêtre à part Decimal MonDecimal = 0.0m;
tu peux remplacer 0.0m par la valeur DÉCIMALE qui t'arange le plus
une valeur decimale s'ecrit avec le sufixe m
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part MonDecimal = 10.25m;
Oui mais cette ligne de code initialise le décimal à 0 et pas à null.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Decimal MonDecimal = 0.0m;
Aujourd'hui j'ai deux solution utiliser les types que j'ai trouvé sur
http://<br /> http://nullabletypes....rge.net/<br />
ou utiliser les décimaux ne pas les initialiser et dans toutes mes opérations utiliser le code suivant:
Je pense utiliser la deuxième solution car la première remet en cause pas mal de mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 try { // Traitement } catch(NullReferenceException) { throw new ... }
Voilà vivement qu'on passe à la version 2 du framework.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager