Hjælp til at forstå C# kode.

Tags:    programmering

Jeg har brug for hjælp til af forstå noget C# kode, som jeg og en medstuderende har lavet - der er brug for kommentarer til de forskellige strukturer som fx constructorer, objektet, metoder osv. Der må også meget gerne kommes med kommentarer til forbedringer.
Koden er til et eksamenprojekt i programmering. Programmet er et bookingsystem til et dyrehotel.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dyrehotel
{//Opretter klassen program
class Program
{
static void Main(string[] args)
{
char svar;

do //do - while loop
{
Console.WriteLine("Vælg dyr: Tast 1 for fisk eller 2 for hund");
string valg = Console.ReadLine();

//opretter kontrolstruktur og nedarvning fra Dyr

Dyr voresDyr;
if (valg == "2")
{
Console.WriteLine("Du har valgt en hund");
voresDyr = new Hund();
}
else
{
Console.WriteLine("Du har valgt en fisk");
voresDyr = new Fisk();
}

Reservation VoresReservation = new Reservation();
VoresReservation.Aktivitet = "Fodre fisken";

Reservation VoresReservation2 = new Reservation();
VoresReservation2.Aktivitet = "Lufte hunden";

Fisk fisken = new Fisk();
VoresReservation.Dyr = voresDyr;

Kunde voresKunde = new Kunde();
voresKunde.Navn = "Mona";
VoresReservation.Kunden = voresKunde;


Console.WriteLine(VoresReservation.UdskrivReservation());
Console.WriteLine("***************");
Console.WriteLine(VoresReservation.UdskrivReservation());
Console.WriteLine(VoresReservation.Aktivitet);
Console.ReadLine();

Console.WriteLine("Flere reservationer?: Tast 1 for ja eller 2 for nej");
svar = char.Parse(Console.ReadLine());
} while (svar == '1');

}


}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dyrehotel
{//Opretter klassen reservation
public class Reservation
{
//Statisk tæller til reservationsnumre.
private static int m_ReservationsCounter = 1;


//atrubutter for klassen
private int m_ReservationsNummer;
private string m_Aktivitet;
private Dyr m_Dyr;
private Kunde m_Kunde;



public Reservation()
{
ReservationsNummer = m_ReservationsCounter;
m_ReservationsCounter++;

}
//Adgang type navn
public Kunde Kunden
{
get
{
return m_Kunde;
}
set
{
m_Kunde = value;
}
}
public int ReservationsNummer
{
get
{
return m_ReservationsNummer;
}
set
{
m_ReservationsNummer = value;
}
}

public string Aktivitet{

get {
return m_Aktivitet;
}
set {
m_Aktivitet = value;
}
}

public Dyr Dyr
{

get
{
return m_Dyr;
}
set
{
m_Dyr = value;
}
}

public string UdskrivReservation()
{
string tmp;
tmp = "Kunde navn: " + Kunden.Navn + "\\n";
tmp = tmp + "Dyrerace: " + Dyr.Race + "\\n";

return tmp;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dyrehotel
{
//Opretter klassen kunde

public class Kunde
{
private string m_Navn;
private string m_Adresse;
private string m_Telefon;

//klassens metode

public Kunde()
{

}

public string Navn
{
get
{
return m_Navn;
}
set
{
m_Navn = value;
}
}
public string Adresse
{
get
{
return m_Adresse;
}
set
{
m_Adresse = value;
}
}
public string Telefon
{
get
{
return m_Telefon;
}
set
{
m_Telefon = value;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dyrehotel
{//Opretter klassen hund
class Hund : Dyr
{
public Hund()
{
Race = "Hund";
}

}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dyrehotel
{//opretter klassen fisk
public class Fisk : Dyr
{
public Fisk()
{
Race = "Fisk";
}
}
}




stop nu dit SPAM !



er ikke c# koder så det her er bare mine meninger generelt.

hvis du påstår at noget sker ved bestemte tastetryk som f.eks. 1 og 2, skal du også sørge for at det kun sker ved disse tastetryk. I den kode du har tester du kun om den ene tast er trykket og hvis den ikke er gør du det andet.

At udskrive den samme tekst 2 gange

Console.WriteLine(VoresReservation.UdskrivReservation());
Console.WriteLine("***************");
Console.WriteLine(VoresReservation.UdskrivReservation());

må da være en fejl.

Da man kun kan oprette 1 reservation per iteration er det også en fejl at du har 2 reservations variabler

Reservation VoresReservation = new Reservation();
Reservation VoresReservation2 = new Reservation();

Du kunne jo bare instantier reservations variable før if sætningerne der tester på taste tryk og så sætte aktiviteten inde i if sætningen.

Jeres reservations counter tæller forkert da den starter på 1 når der er nul reservationer, det er ikke synligt da man ikke kan få udskrevet den.

Eftersom at reservationnummer har en public set kan man vel sætte den, så kan i rent teoretisk set ende med at 2 reservationer har samme nummer hvis man nu lavet en reservation, derefter satte dens nummer til 2 og så lavet endnu en reservation vil de begge have samme nummer såvidt jeg kan se.

uanset om man vælger hund eller fisk er det et object af fisk som i sætter som reservationens dyr. Endnu en gang kunne i gøre dette i if sætningerne der tester på inputet.


Iøvrigt finder jeg det ret underligt at du spørger om hjælp tii at få forklaret kode i selv har lavet, hvis det den anden der har lavet det kan du vel få ham til at forklare det.

du skal i øvrigt putte din kode i en kode blok når du poster her, det er anden sidste knap lige over textareat. Uden den er forsvinder indrykninger som gør koden svær at læse.

Og hvis der er tale om kode i forskellige filer så en kodeblok for hver fils kode.



Indlæg senest redigeret d. 22.04.2008 14:41 af Bruger #5620
Hej Nørden,

Kan du evt. komme med et eksempel på syntaksen hvis jeg vil gøre som du foreslår? Du kunne jo bare instantier reservations variable før if sætningerne der tester på taste tryk og så sætte aktiviteten inde i if sætningen.



Har stadigvæk aldrig kodet c# men ville have skrevet det jeg sagde sådan her:
Fold kodeboks ind/udKode 




t