Avatar billede mazon Nybegynder
08. april 2003 - 14:50 Der er 4 kommentarer

Long = Nothing

Hvordan kan jeg checke om følgende Long har værdien 'Nothing' eller 0?:
Dim MyLong As Long = Nothing

Og nej, jeg kan ikke initialisere den til -1 i stedet for, for at repræsentere Nothing. Ligeledes er det et krav at Long datatypen forbliver.

Bonus spørgsmål:
Hvis *alt* i .NET er objekter, hvorfor kan man så lave:
Dim MyObject As Object = Nothing
If MyObject Is Nothing Then
'blah
End If

mens at dette ikke virker?:

Dim MyLong As Long = Nothing
If MyLong Is Nothing Then
'blah
End If
Avatar billede picard Nybegynder
09. maj 2003 - 16:33 #1
Hejsa

Der er to typer af Long værdier(og integer....).
Den ene er de primitive longs(value type, structure) og den anden er "Boxed longs"(reference type)

De "primitive longs" kan kun indeholde numeriske værdier.
De "boxed longs" virker ligesom objekter, du kan benytte dem til at pege på en long. Måden hvorpå du erlærer en boxed long er som følger:
Dim myLong as Object = 5L

Da mylong også er et objekt kan den derfor også indeholde værdien nothing

mvh.

Christian
Avatar billede matzon Nybegynder
09. maj 2003 - 20:03 #2
ja, har jeg oxo fundet ud af - problemet er at der umiddelbart ikke er en løsning i .NET, idet at jeg *skal* beholde Long data typen - kan altså ikke fuske ved at lave 'Dim myLong as Object = 5L' :/
Avatar billede stenner Nybegynder
18. juni 2003 - 14:29 #3
Til dit object spørgsmål...
Hvis du nu starter med at initialisere din MyLong, hjælper det måske...:
        Dim MyLong = New Long()
        MyLong = Nothing
        If MyLong Is Nothing Then
            Me.Text = "Det virker da"
            MyLong = 10
            Me.Text = Me.Text & " MyLong = " & MyLong
        End If
Avatar billede hvideg Nybegynder
27. juni 2005 - 03:18 #4
Long er et integer format, så det giver ikke mening at sammenligne med nothing, som var det et objekt, da det er en datatype. Håber at dette også forklarer dit følgespørgsmål. Altså en simpel datatype er ikke et objekt og der kan ikke laves overload operatorerer for + - og = i forhold til heltal og ingenting.
Indlysende faktisk, for hvad er ingenting? er ingenting det samme som nul? Nej nul er et ciffer som 1 og 9 kun når det er hus.have.AntalTørreHynderEfterRegnskyl er 0 ingen. Hvis det er statistisk data, kan det at sætte nul ind godt påvirke en gennemsnits værdi og da er det ikke ingenting.

clear as mud?

derfor

dim lngMyLong as long = 0
'goer noget inlæsning/ looping med inlæsning i lngMyLong variablen
if lngMylong = 0 then
  'blah
end if

Siden brug try/catch constellationen til hvis du indlæser datagrundlag, som kan have fraværende data, således at hvis det giver en fejl når du tildeler til lngMylong, som ved lngMyLong = "", så kan du håndtere det som en undtagelse og selv insætte lngMyLong = 0 i catch delen af strukturen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester