Avatar billede hvidgaard Nybegynder
09. august 2005 - 14:42 Der er 15 kommentarer

Hjælp til udfordringer i C#

Jeg er begyndt at lære mig selv C# i forbindelse med noget firma start. Har også fundet er par gode guides til det basale:

http://www.improve.dk/content/tutorials/list.aspx?CategoryID=11
http://www.csharp-station.com/Tutorials/Lesson01.aspx

Samt fået fat i 3 bøger:

Microsoft Visual C# .NET step by step (John Sharp & Jon Jagger)
C# and the .NET Platform Second Edition (Andrew Troelsen)
Windows Forms Programming in C# (Microsoft .net Development Series by Chris Sells)

Samt har Visual Studio .NET 2003 til rådighed

Er begyndt lidt og det går da også meget fint (har ikke nogen tidligere programmerings erfaring ud over batch-filer dengang Pentium 100Mhz var hurtig). Problemet er bare at jeg ikke syntes at kigge lidt på eksempler og læse dem af og skrive ind ligefrem er noget man bliver god til C# af. Derfor ville jeg høre om der var nogle forslag (helst fra C# programmører der har en ide om hvad der er bedst) til små opgaver/udfordringer som jeg kan lave, for så at sige at "få snavsede fingre", samt gode råd om det at programmere C#.

Tænkte mest på fx at beskrive et program, hvad det skal kunne og evt. hvis der er nogle specifikke ting som skal gøres (ex. ikke bruge goto: begyndloop i et loop) evt. at man skal dele logikken op i en eller flere klasser.

Jeg havde tænkt mig at starte med Consol applikationer til jeg kan de grundliggende ting i C# (og har forstået fidusen i OO programmering, samt kan bruge klasser osv. fornuftigt).

Når jeg så kan det ville jeg gå i gang med at undersøge System.Windows.Forms ved evt. at bygge et GUI på de programmer jeg har lavet til consolen. Kunne også følge andre opgaver som kunne være relevante for en god basis indlæring af C#

Jeg er desværre selv lidt blank for ideer, så håber i kan hjælpe. I skal self ikke bruge mange timer på det uden at få noget, men hvis der er en derude der mener at han/hun er kvalificeret til at hjælpe, men at det kræver mere end som lige kan skrives her er jeg åben overfor en evt. lille betaling for servicen (ud over point her self :))
Avatar billede arne_v Ekspert
09. august 2005 - 14:56 #1
Selvfølgelig skal du igang med at kode dine egne programmer.

En klassiske opgave er altid kartoteket (bøger/cdere/whatever).

Du starter med en console app som gemmer i en XML fil.

Så skifter du fra XML fil til database.

Så skifter du fra console app til GUI app.

Så skifter du til en client/server løsning.

Der er masser af muligheder.
Avatar billede hvidgaard Nybegynder
09. august 2005 - 16:06 #2
noget i den retning havde jeg også haft oppe at vende. Men kan du give lidt råd til hvordan man skal dele sine klasser? har ikke helt forstået fidusen i det endnu??!
Avatar billede arne_v Ekspert
09. august 2005 - 16:28 #3
OO A&D og OOP er svært.

Du skal nok starte med at tænke i virkelig verden termer.

Hvad er de ting du skal arbejde med ?

bøger
reoler

så en Book class og en Shelf class lyder logisk

så er der hjælpe tingene:

visnings skærm billede
indtastnings skærm billede
XML fil funktioner
database functioner

et class til hver af dem

måske var det smart hvis klasserne fra de sidste 2 arvede fra en generel
persisterings klasse

o.s.v. o.s.v.

så implementerer du, opdager nogle problemer, laver lidt om

o.s.v. o.s.v.
Avatar billede Syska Mester
09. august 2005 - 17:33 #4
lytter da lige med... synes også nogen gange det er svært at finde på ting som man virkelig lærer noget af, uden at bruge 1000 gange så lang tid for at finde ud af at man kunne have lært det på det havle tid, men alt nyt tager tid, sådan er det....

// ouT
Avatar billede hvidgaard Nybegynder
09. august 2005 - 18:46 #5
dvs at man laver en klasse som indeholde writedata, readdata fx og lader xml og databaseklsserne arve de funktioner (de skal jo nok skrives om, men sådan at man bruger de samme funktioner så resten af programmet ikke skal tilpasses både xml og database?) eller??!
Avatar billede arne_v Ekspert
09. august 2005 - 18:51 #6
ja

hvis de skal dele en lile smule funktionalitet (hvad jeg tror) så en abstrakt basis klasse

hvis de ikke skal dele funktionalitet overhovedet så et interface
Avatar billede hvidgaard Nybegynder
09. august 2005 - 19:28 #7
kan basis klassen så godt skrives så den ingen funktionalitet har udover at være "overpå" de andre, dvs så kan kalder det samme opjekt der står for read/write (som så selv finder ud af om man har valgt XML eller database)??

og hvad menes med abstrakt basis og interface? (sorry hvis jeg spørger for meget)
Avatar billede arne_v Ekspert
09. august 2005 - 19:32 #8
ja

en basis klasse er en klasse som andre klasser arver fra

en abstrakt klasse er en klasse med mindst en abstrakt metode

en abstrakt metode er en metode som ikke er implementeret men skal implementeres
i en klasse som arver fra klassen

et interface er er speciel syntax for en klasse hvor alle metoder er
abstrakte og indeholder derfor overhovedet slet ingen implementation men
er en ren "kontrakt"

din C# bog indeholde ruden tvivl noget om disse emner
Avatar billede hvidgaard Nybegynder
09. august 2005 - 20:11 #9
lyder rigtig godt, man skal bare lige lære de rigtige udtryk for at forstå det :) men so far har du været meget behjælpelig ;)
Avatar billede jimgordon Nybegynder
09. august 2005 - 22:00 #10
Prøv at holde alle de klasser (~filer) der nedarver fra System.Windows.Forms.Form så små som mulige. Ellers ender du hurtigt op med en led antipattern, der også går under navnet the blob.

Der er fristende som begynder at hælde stakke vis af kode ned i diverse GUI relateret events (f.eks. det at trykke på en knap), men det drukner hurtigt i ikke brugbar kompleksitet. Dvs. definer alt anden ikke GUI logik i egne klasser, langt væk fra klasser, der nedarver fra System.Windows.Forms.Form.
Avatar billede hvidgaard Nybegynder
09. august 2005 - 23:22 #11
havde så vidt muligt også tænkt mig at have en klasse "class GUI" kun til det formål, men ved ikke om det er et problem??!
Avatar billede arne_v Ekspert
09. august 2005 - 23:48 #12
start med en enkelt klasse

når du passerer 300 linier så splitter du den op
Avatar billede hvidgaard Nybegynder
10. august 2005 - 00:21 #13
i selve programmet? eller GUI klassen?
Avatar billede arne_v Ekspert
10. august 2005 - 00:24 #14
GUI klassen

de 300 er ikke et magisk tal - du finder selv ud af hvor stor en klasse du synes
at du kan overskue

men værd klar over at klasser har det med at vokse - 100 linier som lige
har core funktionalitet kan nemt være 800 linier inden man er færdig med
alle smådetaljerne
Avatar billede arne_v Ekspert
03. september 2005 - 18:26 #15
tid at få afsluttet her ?

og et svar fra mig
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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