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


Nybörjarfråga

Postades av 2009-01-27 16:02:12 - Per Erlander, i forum c# (c-sharp), Tråden har 3 Kommentarer och lästs av 1481 personer

Hej,

Jag är nybörjare på C# och kämpar för att föstå detta med OO-programmering. Jag har inga problem med att skapa egna klasser eller jobba med egenskaper och get/set. Det finns gott om exempel på "såhär skapar du en person/kund-klass" osv.

Det jag däremot har problem med att förstå är när jag ska skapa och använda dessa klasser.

Om jag t.ex har en databas med kunder och vill få ut dessa i en combobox eller listbox, så skapar jag bara ett dataset och talar om att comboboxen ska ha datasetet som datakälla. Ska jag istället först skapa en kund-klass med egenskaper som motsvarar fälten i databasen och sedan skapa en ny kund
för varje rad i databasen först?

Vart kommer det här med klasser in i bilden?

Tack på förhand från en förvirrad nybörjare!


Svara

Sv: Nybörjarfråga

Postades av 2009-01-27 17:10:50 - Cecilia Wirén

Du är inte ensam Per, OO är det som är svårast för de flesta när de börjar med .NET
Om vi tar ditt exempel med kunder så är det helt ok att göra som du beskriver om man bara skall visa data och där tar det slut. Men vill du bearbeta o jobba med kunderna blir det genast smidigare om du har skapat kundobjekt.
Låt säga att du vill kunna plocka fram alla som är över 18. Då har du först gjort en function på kundklassen som returnerar ålder på kunden. Själva data i databasen innehåller bara personnummer, när du skapar dina kundobjekt lagrar du datat om personnummer i varje kundobjekt inge mer.
Du har nu dina kundobjekt i en Lista eller liknande och kan loopa igenom den och där Age > 18 kopiera dem och lägga dem i en annan Lista eller bara rapportera antalet om du hellre vill det.

Ett lite enklare exempel kanske kan vara ett kortspel. Poker (Vanlig fem-korts poker) , där har vi en kortlek (52 kort), när en spelare fått sina kort har han en "hand".
Här kan vi nu skapa klasserna Kort, Kortlek och Hand.
Kort har egenskaper som färg och värde (tex spader 7)
Kortlek består av en Lista med Kort, har en funktion som heter Shuffle, en som heter GetCard som returnerar ett Kort.
Hand består av fem Kort, har en funktion som kan jämföra sig själv med en annan Hand och anger vilken som är högst.

När man sen skall "spela" Skapar man en Kortleksklass. Man skapar så många Händer som det är spelare, vid varje Handskapande så hämtars fem kort från Kortleksobjektet o läggs in i varje Handobjekt. Sen kan man jämföra de olika händerna med hjälp av Jämförelse funktionen.

Varje klass är ett koncept av verkligheten, i ditt exempel så var det Kunder vidare kan man tänkas att du har Varor, Ordrar osv...
I ditt exempel kanske du tror att du inte använt nån klass men där har du fel... både comboboxen och datasetet är klasser. ComboBox är ett koncept att man skall kunna ta fram en lista på alternativ och välja ett. Man skall kunna lägga till alternativ i lista (.add(..)) m.m.
Varje gång du gör en comboBox skapar du en instans av klassen comboBox. Det som kan vara lite förvirrande är att du gör detta grafiskt när du gör drag & drop ifrån toolboxen. Men titta i Form1.Designer.cs (filen som genereras av ditt grafiska skapande) så skall du se att där finns 'new System.Windows.Forms.ComboBox'.

Förstår att det kan kännas trixit men jag lovar dig att när du kommer in i det så kommer bitarna bara att falla på plats och allt bli så mycket lättre att koda.


Svara

Sv: Nybörjarfråga

Postades av 2009-01-28 09:26:32 - Andreas Thorarins

Glöm det där med dataset , de är extremt tunga för att göra enkla saker som en lista med kunder.
Du är helt inne på rätt spår när du tänker att skapa upp ett kundobjekt när du hämtar en kund
och hämtar du flera kan du använda tex. en List<kund> och lägga dem i.
Och gör du detta "manuelt" så använd datareader istället för dataset.

men för att slippa sitta och skapa alla dessa entiter(klasser) själv så finns det or-mappers
Där du mappar dina databastabeller mot enkla objekt som du sedan använder i C#.

tex.
entity framework
http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx
linq to sql.
http://msdn.microsoft.com/en-us/library/bb425822.aspx

finns även en uppsjö 3e parts produkter som tex. teleriks orm http://www.telerik.com/products/orm.aspx

Teleriks mapper är väldigt enkel att använda och finns i gratis version så länge du kör mot en gratis datakälla så som mysql eller sql server express.


Svara

Sv:Nybörjarfråga

Postades av 2009-01-28 11:04:53 - Per Hultqvist

<b>Glöm det där med dataset , de är extremt tunga för att göra enkla saker som en lista med kunder.</b>

En mild protest :-) Det finns applikationer där DataSet inte är något problem eftersom prestandan inte är något problem vilket i sin tur brukar betyda små datamängder. Men skall man tänka stort håller jag med dig...


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

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 699
27 958
271 741
676
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