FAQ |
Kalender |
2008-09-08, 11:06 | #1 | |||
|
||||
Flitig postare
|
Jag har precis börjat med C# och läser just nu ett par böcker (Head first C sharp samt Illustrated C Sharp), men får fortfarande inte riktigt kläm på grunderna. <_<
Så om någon vänlig själ orkar förklara ett par saker vore det toppen B) koden: Kod:
using System; * *class DaysTemp * *{ * * * *public int High, Low; * * * *public int Average() * * * *{ * * * * * *return (High + Low) / 2; * * * *} * *} * *class Program * *{ * * * *static void Main() * * * *{ * * * * * *DaysTemp t1 = new DaysTemp(); * * * * * *DaysTemp t2 = new DaysTemp(); * * * * * *t1.High = 58; t1.Low = 40; * * * * * *t2.High = 50; t2.Low = 35; * * * * * *Console.WriteLine("t1:{0},{1},{2}", t1.High, t1.Low, t1.Average()); * * * * * *Console.WriteLine("t2:{0},{1},{2}", t2.High, t2.Low, t2.Average()); * * * *} * *} 1- Vad har denna textkod för roll i programmet? Jag har förstått att det är från denna klass man anropar värden? Kod:
class DaysTemp * *{ * * * *public int High, Low; * * * *public int Average() * * * *{ * * * * * *return (High + Low) / 2; * * * *} * *} 2- Gällande fråga nummer 1, om ovanstående kod är värden. Varför skriver man även värden under metoden "static void Main", dvs varför måste man anropa variablerna "High,Low osv" när det redan står hur mycket High, Low är lika med ? (koden nedanför) t1.High = 58; t1.Low = 40; t2.High = 50; t2.Low = 35; 3- Varför skapa en ny klass som redan finns ( new DaysTemp)? DaysTemp t1 = new DaysTemp(); 3- Är både t1 och High variabler och vad betyder t1.High? Någon som orkar förklara detta för mig? |
|||
Svara med citat |
2008-09-08, 13:40 | #2 | ||
|
|||
Nykomling
|
Hej,
1. Ja, det är klassen som utför beräkningen (Average) och lagrar värdena i två egenskaper (properties) vars namn är High och Low. 2. De första t1-2.High, t1-2.Low fyller klassens egenskaper med värden, dvs nu har respektive instans (återkommer med det under 3:an) värden i sina egenskaper. För att hämta ut och skriva ut värdena vilket du gör i Console.WriteLine så behöver du ju hämta dem där de är lagrade och det är de i respektive instanserna, t1 och t2. Slutsats på det är att först fyller du dina egenskaper, sedan hämtar du värdena och skriver ut dem. 3a. För att kunna använda klassen så behöver du skapa en instans av klassen och det är det som du gör genom att skriva "DaysTenp t1 = new DaysTemp". Att du skapar två instanser av samma klass är för att du ska kunna lagra två olika värden samtidigt utan att skriva över de tilldelade värdena. 3b. Ja och nej, t1 är en variabel som är en instans av klassen DaysTemp medan High är en egenskap som tillhör instansen t1. (Luddigt va?) t1.High betyder, eller är egenskapen High från klassen DaysTemp som i sin tur lever i instansen t1. |
||
Svara med citat |
2008-09-09, 22:37 | #3 | ||
|
|||
Supermoderator
|
För att förtydliga lite yttligare om du inte var med på vad en klass är. En klass kan kort sagt sägas vara en representation av ett objekt (t.ex. en databasuppkoppling, en xml-läsare eller en pennvässare). Till denna klass kan du skapa hur många egenskaper och funktioner som du vill / har behov av.
Klassen blir som en mall. När du vill använda klassen måste du skapa det som kallas för en instans av klassen och tilldela en variabel denna instans. Det är precis likadant som när du skapar en variabel som en sträng eller ett heltal.
__________________
Full-stack developer, free for smaller assignments |
||
Svara med citat |
2008-09-11, 09:45 | #4 | |||
|
||||
Klarade millennium-buggen
|
Och ytterligare en förklaring:
Du kan i detta fall se DaysTemp klassen som en databärare: den har två properties som kan hålla data samt en (average) som gör en beräkning och returnerar den. Så det var själva beskrivningen av klassen. Sedan i din static void Main så bestämmer du dig för att använda dig av din DaysTemp klass. Du skriver då tex: DaysTemp t1 = new DaysTemp(); ... för att skapa en ny instans som heter t1. t1 är nu klar att användas som ett objekt av typen DaysTemp. Raderna under så bestämmer du att du ska populera de properties som t1 nu har, exempelvis: t1.High = 58; ...och... t1.Low = 40; Din kod skriver sedan ut medelvärdet genom att använda sig av t1.Average() Så...det var ytterligare ett svar på ditt problem |
|||
Svara med citat |
Svara |
|
|