У меня есть небольшая проблема, в моем исходном коде я не понимаю, почему мой метод ToUpload дает мне дополнительный console.writeLine в окне консоли. (выписать объект пива)
Когда я вызываю метод ToUpload, и пиво находится в словаре пива, это дает мне дополнительную Console.WriteLine, где записывается объект пива на консоли. И я не знаю почему.
Это мой вывод:
- Borsodi sör 160 4,6 1000
- Pilsner Urquell 250 4,4 800
- Шопрони Ашок 150, 4,5 900
- Dreher Classic 200, 5,2 600
- 125
- Borsodi sör 160 4,6 475
- Pilsner Urquell 250 4,4 800
- Шопрони Ашок 150, 4,5 1350
- Dreher Classic 200, 5,2 600
- Братиста сёр, 230, 4,5 300
- Soproni Ászok 150, 4,5 450 // это дополнительно
- Borsodi sör 160 4,6 100 // и это
и я хочу это:
- Borsodi sör 160 4,6 1000
- Pilsner Urquell 250 4,4 800
- Сопрони Асок 150, 4,5 900
- Dreher Classic 200, 5,2 600
- 125
- Borsodi sör 160 4,6 475
- Pilsner Urquell 250 4,4 800
- Шопрони Асок 150, 4,5 1350
- Dreher Classic 200, 5,2 600
Bratista sör, 230, 4,5 300
public void ToUpload(Beer beer, int dl)
{
int d = 0;
Beer s = null;
// search for beer in beers dictionary
foreach (var item in beers)
{
if (item.Key.Equals(beer))
{
d = item.Value;
s = item.Key;
}
}
// if this beer in the beers, update the value
if (s != null)
{
beers[s] = d + dl;
}
// if a new beer, just add to beers
beers.Add(beer, dl); // IDictionary beers = new Dictionary
}
public Pub()
{
ToUpload(new Beer("Borsodi beer", 160, 4.6), 1000);
ToUpload(new Beer("Pilsner Urquell", 250, 4.4), 800);
ToUpload(new Beer("Soproni Ászok", 150, 4.5), 900);
ToUpload(new Beer("Dreher Classic", 200, 5.2), 600);
}
static void Main(String[] args)
{
Beer b = new Beer("Borsodi beer", 160, 4.6);
Beer c = new Beer("Bratista beer", 230, 4.5);
Beer d = new Beer("Soproni Ászok", 150, 4.5);
Pub pub = new Pub();
foreach (var item in pub.beers)
{
Console.WriteLine("{0} {1}", item.Key, item.Value);
}
Console.WriteLine(pub.Elad("Borsodi beer", 125));
//pub.ToUpload(b, 2000);
pub.ToUpload(c, 300); // Don't Write out this beer object
pub.ToUpload(d, 450); // Write out this beer object the console
pub.ToUpload(b, 100); // Write out this beer object the console
foreach (var item in pub.beers)
{
Console.WriteLine("{0} {1}", item.Key, item.Value);
}
Console.ReadLine();
Вот класс пива:
public class Beer
{
string name;
int price;
double alcohol;
public string Name { get { return name; } }
public int Price{ get; set; }
public double AlkoholTartalom { get { return alcohol; } }
public Beer(string name, int price, double alcohol)
{
// ide írja a kódot
this.name = name;
this.price = price;
this.alcohol = alcohol;
}
public override bool Equals(object obj)
{
if (obj is Beer)
{
Beer other = (Beer)obj;
return this.name == other.name;
}
return false;
}
public override string ToString()
{
return this.Name + " " + this.Price+ " " + this.AlkoholTartalom;
}
}