[.NET]Decimal met waarde Nothing of Null

Pagina: 1
Acties:

  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
Ik ben met een class bezig waar veel decimalen in voorkomen. Er moet ook een functie in die de class naar csv formaat exporteerd. Nu wil ik controleren of de Decimal wel of niet ingevuld is. Ik had bedacht dat ik bij het maken van mijn object alle decimalen de waarde Nothing geef en dan met IsNothing(var) zou kunnnen controleren of de decimaal wel of niet is gebruikt.

Op de een of andere manier willen mijn decimalen maar niet de waarde Nothing aannemen. Als ik ze in de watchlist bekijk hebben ze allemaal de waarde "0D" tewijl ik echt:

code:
1
mijndecimaal as Decimal = Nothing
heb gedaan

Ik zou ook op 0 kunnen controleren en dan een lege string exporteren maar dan heb ik een probleem als de decimaal ook echt 0 moet zijn.

Ik vemoed zelf dat het komt doordat decimal een system type is en geen object. Is er een simpelle manier om dit op te lossen?

  • whoami
  • Registratie: December 2000
  • Nu online
Decimal is een value-type, en geen reference type, dat is de reden.
Een value-type kan geen null zijn.

Decimal heeft wel een aantal member methods die je kan gebruiken, bv. MinValue. Als je afspreekt dat MinValue een 'lege' decimal representeert, kan je dat gebruiken.

https://fgheysels.github.io/


  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

mr_taipan schreef op 25 oktober 2004 @ 12:14:
[...]
Ik vemoed zelf dat het komt doordat decimal een system type is en geen object. Is er een simpelle manier om dit op te lossen?
Een Decimal is inderdaad een Type en kan dus niet Nothing zijn.
Je zou per Decimal een Boolean kunnen declareren die aangeeft of de Decimal geldig is of niet.
Of je maakt een class aan die dat doet; dus een class met een Decimal en een boolean erin.

te laat..... :X

[ Voor 3% gewijzigd door MrSleeves op 25-10-2004 12:22 ]

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
Daar had ik zelf ook aan gedacht.

Ik denk dat ik dat maar ga gebruiken.

thx

dit is een reactie op whoami

[ Voor 17% gewijzigd door mr_taipan op 25-10-2004 12:23 ]


Verwijderd

Het zit zo:
- Nothing is de waarde voor object-variabelen voor "geen waarde toegekend"
- Empty is de waarde voor "simple types" voor "geen waarde toegekend"
- NULL is de waarde voor variants voor "geen type toegekend dus ook geen waarde"

Met IsEmpty is te controleren of een decimal geladen is.

  • pjvandesande
  • Registratie: Maart 2004
  • Nu online

pjvandesande

GC.Collect(head);

Verwijderd schreef op 25 oktober 2004 @ 12:29:
Het zit zo:
- Nothing is de waarde voor object-variabelen voor "geen waarde toegekend"
- Empty is de waarde voor "simple types" voor "geen waarde toegekend"
- NULL is de waarde voor variants voor "geen type toegekend dus ook geen waarde"

Met IsEmpty is te controleren of een decimal geladen is.
Null en Nothing is toch hetzelfde, alleen het ene is toch VB en het anderen C# en C++, dus alleen syntax verschil? :?

toevoegin:
De meeste structs hebben vaak de flag 'Empty' en anders kun je altijd wel iets van 'minimun value' zoals al eerder gezegt.
Je kan natuurlijk zoals chief als aangeeft ook even een mask over de struct gooien met een boolean of hij geset is of niet.

[ Voor 39% gewijzigd door pjvandesande op 25-10-2004 13:14 ]


  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

Verwijderd schreef op 25 oktober 2004 @ 12:29:
Het zit zo:
- Nothing is de waarde voor object-variabelen voor "geen waarde toegekend"
- Empty is de waarde voor "simple types" voor "geen waarde toegekend"
- NULL is de waarde voor variants voor "geen type toegekend dus ook geen waarde"

Met IsEmpty is te controleren of een decimal geladen is.
Ben je nu niet in de war met VB6?
Decimal heeft geen property IsEmpty en de IsEmpty van VB6 is vervangen door IsNothing in VB.NET.

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
Ik kan de IsEmpty functie en waarde nergens vinden in vb.Net :'(

  • pjvandesande
  • Registratie: Maart 2004
  • Nu online

pjvandesande

GC.Collect(head);

mr_taipan schreef op 25 oktober 2004 @ 13:17:
Ik kan de IsEmpty functie en waarde nergens vinden in vb.Net :'(
Niet elke struct heeft deze flag.

Verwijderd

Chief.NET schreef op 25 oktober 2004 @ 13:14:
[...]

Ben je nu niet in de war met VB6?
Decimal heeft geen property IsEmpty en de IsEmpty van VB6 is vervangen door IsNothing in VB.NET.
Ja, ik heb inderdaad VB en VB.NET door elkaar gehaald ;( .
Pagina: 1