Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-09 22:52:45 - Johan Söderberg, i forum vb.net, Tråden har 12 Kommentarer och lästs av 624 personer

Jag har byggt ett eget klassbibliotek som heter handbollmanager.dll - denna dll har jag lagt i ett asp.net projekts BIN katalog. Därefter skapat en referens till dll och importerat den i koden (se nedan).

Trots att jag har anropat konstruktorerna för både "Lag" och "Spelare" får jag NullReferenceException på nedanstående kod. Det är raden med "laget.adderaSpelare(...)" som strular. Någon som kan säga varför?

En annan fråga: Vilken skillnad gör det att skapa en instans genom att använda "Handbollmanager.spelare" eller endast "Spelare" ?


<code>
Imports Handbollmanager

Public Function startHM() As Boolean
Dim spelare1 As Handbollmanager.Spelare
Dim laget As Lag = New Lag()

spelare1 = New Handbollmanager.Spelare("Kim Andersson", "IK Sävehof")
laget.adderaSpelare(spelare1, "H9")
Return True
End Function
</code>


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-09 23:20:39 - Johan Söderberg

Verkar vara något fel på min metod adderaSpelare. Det blev plötsligt tydlig för mig att man bör ha gjort ett gediget jobb med sitt klassbibliotek innan man börjar arbeta med det i en applikation.

Någon som har något bra förslag på hur man smidigt kan enhetstesta sitt klassbibliotek innan man börjar köra i en app ?

tack på förhand


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-10 14:27:14 - Johan Söderberg

Klassbiblioteket jag byggt ser ut så här för klassen "LAG" (något förenklat men det viktiga bör framgå):

<code>

Public Class Lag
Private MV as Collection
Private L_poang as Integer

Public Sub New()
Dim MV as new collection()
L_poang = 0
End sub

Public Function adderaSpelare(ByRef spelare as Spelare, ByVal pos as String) as Boolean
Select Case pos
Case "MV"
MV.Add(spelare)
Return True
Case Else
Return False
End Select
End Function

End Class
</code>

Det som jag identifierat som fel är att när jag anropat konstruktorn New() och kollar i debuggern så är MV, som borde vara av typen Collection, av typen "Nothing". Någonting är alltså fel med att göra på mitt sätt som ovan. Hur skall detta implementeras??


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-10 20:03:40 - Oskar Johansson

Du deklarerar bara en ny variabel med namnet MV i din konstruktor. Den är bara giltig i konstruktorn.
Använd:
MV = new collection()
istället


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-11 08:32:27 - Johan Söderberg

I konstruktorn ? Eller i metoden ?
Blir den då giltig hela objektets livslängd?

Jag förstår inte skillnaden men är det så så är det så...


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-11 10:11:06 - Oskar Johansson

Jag tycker faktiskt att du ska ta och läsa på lite om livslängder på variabler; den här frågan är faktiskt väldigt grundläggande inom programmering


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-11 10:37:29 - Johan Söderberg

Vilket värdelöst svar!

Med den inställningen kan vi ju lägga ner pellesoft helt och hållet och bara läsa böcker och dokumentationer. Om du nu tycker det var en så dum fråga föreslår jag att du lämnar den helt och hållet och kanske någon annan nappar som vill hjälpa till. Din inställning tycker jag är helt underkänd för att inte säga korkad !

Nu är det ju så att jag vill ha hjälp i just detta specifika fall och då skriver jag en konkret fråga på ett konkret problem med ett konkret kodexempel.

Jag trodde att när man initierade ett objekt med hjälp av konstruktorn att de variabler man definierat i klassen, och som man dimensionerar i konstruktorn skulle leva hela objektets livslängd. Nu verkar det ju inte vara så, så då undrar jag hur man kan göra istället för att upnå detta.

BTW Onkelborg: Du kan vara säker på att jag studerat detta genom att läsa bland annat hjälpfiler i Visual Studio. Eftersom jag inte hittade det jag sökte skrev jag en fråga här istället. Du behör inte bry dig om den här tråden något mer, jag är säker på att det finns andra medlemmar som är intresserade av att hjälpa till.


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-11 10:57:31 - Andreas Håkansson

Johan,

Variabler har en viss livstid (eller Scope som det kallas) inom en klass. En variabel som deklareras på klassnivå kan man nå inom hela klassen, en som skapas inom en metod (konstruktorn är en metod) kan bara nås inom metoden etc.

Du är på väldigt god väg när du deklarerar MV på klassnivå, men sen deklarerar du en ny <b>lokal</b> metodvariabel inom din konstruktor. För att komma åt samma <b>MV</b> variabel skriver du

Public Sub New()
 MV = New Collection()
 L_poang = 0
End sub


Alternative så kan du prefixa med <b>Me</b> för att göra det extra trydligt att det är en variabel som är delad inom hela klassen.

Public Sub New()
 Me.MV = New Collection()
 L_poang = 0
End sub


Sen vill jag skriva en sak till Oskars "försvar". Visst ska man hjälpa varandra på pellesoft men överlag så ser vi som skriver de flesta svaren att <b>väldigt</b> många nybörjare är extremt lata och bekväma av sig. Det rä tydligen lättare att skriva en fråga här än att plocka upp en bok och läsa. Det finns tyärr inga genvägar om man vill bli en bra programmerare.. alla måste vi gå samma väg och jag är övertygad om att det var det som Oskar syftade lite på.

Säger inte att det är så i ditt fall, men forumet är fyllt med samma frågor om och om igen och väldigt många är på en så grundläggande nivå så man undrar om folk läst något överhuvudtaget innan de frågade - för visst det är väl lättare att fråga än att klura på det ett par dagar =)


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-11 11:06:45 - Johan Söderberg

Andreas >> Tack för ditt pedagogiska svar.

Jag förstår och håller med det du säger om Oskars svar, i mitt fall har jag lagt många timmar (hela helgen känns det som) och inte lyckats lösa problemet. Har sökt i VS hjälpfiler samt försökt söka i Pellesoft. Då tycker iallfall jag att jag inte förtjänar något, som jag uppfattade det, otrevligt svar av Oskar.


Problemet löst, tråden stängd !!


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-11 12:09:41 - Johan Bovin

Google har svar på rätt många frågor men tyvrr måste man ibland anvnda sig av rätt terminologi, vilket kan vara svårt att veta innan man vet (om du fattar) men här borde du hittat nåt...
en sökning på t.ex. vb.net +variables +lifetime borde gett dig rätt många bra träffar. Även om mycket står i hjälpen och här på PelleSoft så finns inte allt där, på Google hittar man dock det mesta...


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-11 21:17:57 - Oskar Johansson

Otrevligt vet jag inte, var då inte menat som otrevligt iaf. ;)

Vad jag syftade på var att det jag såg av din kod var inte ett utav de mest enkla projekt man kan ge sig in på. Mitt inlägg var helt enkelt en fundering från min sida om du kunde grunderna till 100% eller inte. Jag lovar; om man bara tar och ser till att strunta i alla de spännande funktioner som finns i .net/något annat språk och istället läser lite om det lite mer grundläggande sakerna såsom variabel-deklarationer, livslängder etc. så slipper man sådana här problem. :)


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-12 15:31:51 - Per Hultqvist

Jag måste hålla med Johan angående Onkelborgs svar. Det är så jäkla onödigt med sådana svar, gillar ni inte frågan så strunta i att svara på den. Det är bara att leta upp en annan mer "utmanande" fråga att svara på i stället. Antingen det, eller ge ett vettigt svar...


Svara

Sv: eget klassbibliotek, problem med nullreferenceexception

Postades av 2004-10-12 15:49:24 - Andreas Håkansson

Per,

Det håller jag inte med om. Om vi bortser från en evt. formulering av ett sådant svar så anser jag att det är mer lämpligt att styra upp en viss sorts av nybörjarfrågor på ett sådans sätt att personen i fråga får studera lite på egenhand och verkligen lära sig något, istället för att få kod som man kan klippa & klista in utan att veta vad som händer.

Jag försöker själv att ge en beskrivande text (som ovan) när jag svarar på den typen av frågor, men ibland hänvisar jag till egenstudier, oftast tillsammans med länkar och lite nyckelord då man ser att personen försöker "cykla innan man kan gå" så att säga.

Hänvisning till självstudier tillsammans med råd kan ge personen en betydligt bättre grund att stå på än ett kodsvar. Som sagt, det är en avvägningsfrågs men definivt inget man skall hoppa över för den saken skull.


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 882
27 965
271 776
527
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies