Håller på och bygger ett register över matrecept. Vill använda dynamiska listor och alltså inte statiska vektorer. Hej! Jo, du har en List<Ingrediens> INNE i Matratt-klassen, där du sparar alla ingredienser som tillhör en viss maträtt, en klass kan ju bestå av andra klasser. Ett objekt av klassen Bil kan du bestå av objekt av klasserna Hjul, Dörr, Motor. När man tänker objektorienterat är det meningen att man ska göra en avbild av verkligheten. Ja detta gjorde att de blev lite klarare!! tack så mycket för hjälpen...kanske addar dig senare utifall att om det går bra :)C# listor
Tanken är att jag har en lista över namn på maträtter, sen vill jag även ha listor med ingridienser och liknande kopplat till dessa maträtterna. Det är här jag fastnat lite.
Kod:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
public class ingridienser
{
List<string> ingrid = new List<string>();
}
static void Main(string[] args)
{
List<ingridienser> namn= new List<ingridienser>();
}
}
}
Det här är så här jag har tänkt än så länge men får inte till det riktigt, är det någon som har nåt förslag på hur man kan göra?
Tack på förhand!Sv: C# listor
Man kan lösa det hela genom två klasser, en klass Ingrediens och en klass Maträtt. I klassen Matratt skapar du en lista som innehåller objekt av klassen Ingrediens.
Om man ska ta lite objektorienterad teori så är relationen mellan klasserna Matratt och Ingrediens en aggregering, eller mer exakt en komposition som är den starkare formen av aggregering.
Man kan säga så här:
Ett Hus består av bla annat Fönster, men ett hus kan vara ett Hus även utan några Fönster. Men en Maträtt kan inte finnas utan några Ingredienser, alltså är relationen en kompostion. En Maträtt består utav en eller flera Ingredienser.
public class Matratt
{
private List<Ingrediens> ingredienser = new List<Ingrediens>();
Matratt()
{
}
}
public void AddIngrediens(Ingrediens ingrediens)
{
ingredienser.Add(ingrediens);
}
}
public class Ingrediens
{
}
Sv:C# listor
Tack är inte riktigt med på vad du menar, är ganska ny på det här med programmering och c-sharp...kan inget med objektorieterat ännu...så jag förstår inte riktigt hur jag ska ta detta vidare, vet inte hur du får maträtt att samverka med ingridiens...Sv: C# listor
public class Matratt
{
private string namn;
List<Ingrediens> ingredienser;
Matratt(string n)
{
//sparar ner namnet.
n = namn;
ingredienser = new List<Ingrediens>();
}
public void AddIngrediens(Ingrediens ingrediens)
ingredienser.Add(ingrediens);
}
public class Ingrediens
{
private string namn;
Ingrediens(string n)
{
namn = n;
}
}
static void Main(string[] args)
{
/* Skapar referns till nytt objekt av klassen Matratt. Den s.k. konstruktorn, den som har samma namn
som klassen används för att initiera objektet, i det här fallet sparas namnet på maträtten i variabeln namn. Detsamma gäller för klassen Ingrediens.
*/
Matratt pannkakor= new Matratt("Pannkakor");
/*
När du anropar metoden AddIngrediens sparas varje ny Ingrediens i listan ingredienser i det nya objektet
av klassen Matratt, alltså i det här fallet, inne i objektet pannkakor.
*/
pannkakor.AddIngrediens(new Ingrediens("Mjöl"));
pannkakor.AddIngrediens(new Ingrediens("Ägg"));
pannkakor.AddIngrediens(new Ingrediens("Mjölk"));
pannkakor.AddIngrediens(new Ingrediens("Salt"));
// Observera här att objekten pannkakor och kottfarssas är helt olika objekt, eftersom de ju symboliserar
// två olika maträtter, precis som i verkligheten.
Matratt kottfarssas = new Matratt("Köttfärssås");
kottfarssas.AddIngrediens(new Ingrediens("Tomatpuré));
kottfarssas.AddIngrediens(new Ingrediens("Gul lök"));
kottfarssas.AddIngrediens(new Ingrediens("Blandfärs"));
}
Hoppas detta hjälper, om inte det går kan du ställa frågor via msn messenger också om jag är online vilket jag brukar vara på kvällarna, p_ljung@hotmail.com. Jag hjälper gärna en som är lite grön på programmering.
Jag har läst systemvetenskap på Göteborgs universitet i fyra år, nästan allt handlade om objektorientering, dock lästes inte C#, men det tar jag igen med en distanskurs på Malmö högskola.
mvh Per Ljung
Sv:C# listor