affe90 Skrevet 2. juli 2008 Del Skrevet 2. juli 2008 God kveld, godtfolk! Jeg har lenge facinert meg over C#. Har aldri fått satt i gang, men her om dagen fant jeg en bok som var gratis på IT-forlaget sine hjemmesider. Uansett, jeg har gjort min første problemløsning og jeg trenger kritikk på koden, gjerne tanker og innspill rundt koden. Jeg tenker da spesielt på struktur, kommentarer og generelt bruk av navn osv. Jeg er veldig ny, og jeg vil si at det var utrolig gøy å løse et problem på egenhånd. (En liten takk til Manfred her på forumet for et tupp i baken). PS: Kommentarene har jeg egentlig laget for å hjelpe meg selv. Here it goes: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace oppgave4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // Deklarering av variabler. Bruker float datatype og egne variabelnavn. float timelonn, anttimer, skatteprosent, sum, skatt, netto; // Her konverterer jeg input fra txtBox (string) til tall. timelonn = float.Parse(txtTimelonn.Text); anttimer = float.Parse(txtAntTimer.Text); skatteprosent = float.Parse(txtSkatteprosent.Text); // Diverse beregninger. Logisk mattematikk. sum = timelonn * anttimer; skatt = sum * skatteprosent / 100; netto = sum - skatt; // Her lagrer jeg data i labeler. Jeg gjør om tall til strenger for å kunne klare og legge de sammen. label4.Text = "Din bruttolønn blir: " + sum.ToString() + " kr"; label5.Text = "Du skal betale: " + skatt.ToString() + " kr i skatt"; label6.Text = "Din nettolønn blir: " + netto.ToString() + " kr"; } private void button2_Click(object sender, EventArgs e) { //Enkel reset av tekstbokser. Fokus på ønsket tekstboks. txtTimelonn.Text = ""; txtAntTimer.Text = ""; txtSkatteprosent.Text = ""; txtTimelonn.Focus(); } } } Lenke til kommentar
GeirGrusom Skrevet 2. juli 2008 Del Skrevet 2. juli 2008 Ser egentlig stort sett bra ut, et par ting bare: Du har vært flink og gitt nesten alle kontrollene dine skikkelige navn, ta neste steget og gjør det med labelene, knappene og formen også Ofte kan det være mer hensiktsmessig å deklarere variabler der de blir brukt, det er ingen regel, men kan bidra til at koden blir et lite hakk mer strukturert. Siste ting: I dette tilfellet ville jeg brukt try...catch rundt float.Parse funksjonene dine, eller byttet de med TryParse. Vær obs over at dette er en del av program som er veldig sårbar (det skal lite til fra brukeren sin side før programmet kræsjer her) Det eneste som mangler her er egentlig at du formaterer sum, skatt etc. Jeg vil si dette er absolutt en av de bedre n00b kodene jeg har sett på forumet her; du må ha vært borti programmering før? Lenke til kommentar
affe90 Skrevet 2. juli 2008 Forfatter Del Skrevet 2. juli 2008 Takk for raskt og fint svar, GeirGrusom! Skal vi se her: Ja, jeg så det med labelene da du skrev det. Dette er en av grunnene til at jeg spurte etter kritikk, for å få flere synsvinkler. Så det med lablene skal jeg ordne på så blir det bra. Det med å deklarere variabler der de blir brukt vil det si og ikke gjøre det helt på toppen, i førsten av koden slik jeg har gjort det? Altså før hvert variabelnavn nedover i koden? Im I right? Det du nevner med TryParse, Catch og det der har jeg ikke vært borte i. Kunne du vært så vennlig å begrunne hvorfor du ville brukt disse funksjonene, eller er det metoder det heter? Mye nytt så ting kan gå litt surr. Jeg brukere ikke det ennå, må lære meg det. Kommer nok senere i boken tenker jeg meg. Formatering av sum, skatt etc: Noen tips, ikke løs problemet, det vil jeg gjøre selv, men gi noen tips:) Gjerne pseudo. Jeg har vært borti litt programmering før. Begynte pent med makrup-språk HTML/CSS. Begynte smått med PHP, ikke SQL og den slags. Ble ikke noe stort i PHP. Deretter ble det en den Delphi og egenlæring med språket på skolen. Litt Python her hjemme og C# har jeg alltid hatt sansen for. Synes applikasjonsutvikling er veldig artig! Python snuste jeg på for å prøve å lære meg det helt basiske innen programmering, samme som jeg lærte meg i Delphi. Det lengste jeg har kommet i basisk programmeringslogikk er vel arrays, men så langt har jeg ikke kommet i C#. Lenke til kommentar
HDSoftware Skrevet 3. juli 2008 Del Skrevet 3. juli 2008 Jeg ville også gjort nytte av VS sin fantastiske organisering av kode. Prøv følgende #region --<Properties>-- #region ----< Public >---- public int Verdi1 public string Verdi2 #endregion #region ----< Private >---- private int Verdi3 private string Verdi4 #endregion #endregion #region --< Methods >-- #region ----< Public >---- public void Metode1() {} #endregion #region ----< Private >---- private void Metode2() {} #endregion #endregion En annen ting du også bør sjekke ut er dette: Lag denne metoden: public string Metode(int pInt, string pString) {} Nå setter du markøren foran metoden (linjen foran) og skriver /// (tre skråstreker) ;-) Lenke til kommentar
Manfred Skrevet 3. juli 2008 Del Skrevet 3. juli 2008 Det du nevner med TryParse, Catch og det der har jeg ikke vært borte i. Kunne du vært så vennlig å begrunne hvorfor du ville brukt disse funksjonene, eller er det metoder det heter? Mye nytt så ting kan gå litt surr. Jeg brukere ikke det ennå, må lære meg det. Kommer nok senere i boken tenker jeg meg. Enten: try { timelonn = float.Parse(txtTimelonn.Text); } catch { //Håndtere feil her, dersom det som ble skrevet inn ikke var en float } Eller: if( !float.TryParse(txtTimelonn.Text, out timelonn) ) // Håndtere feil her, dersom det som ble skrevet inn ikke var en float Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå