方法 Eat() 接收字符串“food”,然后将其与“favFood”进行比较?

Method Eat() receiving a string"food" and then compares it to "favFood"?

提问人:pickleriick137 提问时间:7/26/2022 最后编辑:pickleriick137 更新时间:7/27/2022 访问量:72

问:

编辑:已解决

我最近开始学习编程(c#),目前正在研究继承和多态性。
我已经完成了大部分编码,但现在我卡住了。

这是我得到的描述,我被困住了:方法 Eat() 接收一个字符串(food) 并将其与动物最喜欢的食物“favFood”进行比较。

我有一份所有动物的清单,包括每只动物最喜欢的食物,但我不知道如何制作一根绳子(食物)并将其与清单进行比较。我想要字符串在哪里?

(代码很长,但我认为其余的无关紧要。 谢谢!

编辑:如果食物是像现在的动物一样“favFood”,他们吃它,(饿了==假)。 如果它不是“favFood”,他们就不会吃它,并且(饿了==真) 一旦我弄清楚如何以正确的格式发布它xd(我是新的)

abstract class Animal
{
    protected int age { get; set; }
    protected string name { get; set; }
    protected string favFood { get; set; }
    protected string breed { get; set; }
    protected bool hungry { get; set; }
    public Animal(string name, int age, string favFood, string breed)
    {
        this.name = name;
        this.age = age;
        this.favFood = favFood;
        this.breed = breed;

    }
    public virtual void Interact()  
    {
        
    }
    public virtual void HungryAnimal() 
    {

    }
    public virtual void Eat(string food)
    {
        // offer animal food from string, if "favFood" they eat and (hungry == false)
        // if not "favFood" HungryAnimal() (hungry == true)

    }
    public override string ToString()
    {
        return base.ToString();    // Not sure this is correct
    }
}
class Petowner
{
    private int Age;
    private List<Animal> pets = new List<Animal>();
    public Petowner(int age)
    {
        Age = age;
        pets.Add(new Cat(name:"Ellie", age: 3, favFood:"Fisk", breed:"Bondkatt"));
        pets.Add(new Cat(name:"Meelo", age:11, favFood:"Ost", breed:"Norsk skogskatt"));
        pets.Add(new Dog(name:"Sassa", age:6, favFood:"Korv", breed:"Husky"));
        pets.Add(new Puppy(name:"Majken", age:0, favFood:"Köttfärs", breed:"Pitbull"));
    }
    public void Feed()  // Sub-menu
    {
        int x = 0;
        Console.Clear();
        Console.WriteLine("Vilket djur vill du mata?\n---------------------");
        PrintAnimals();
        try
        {
            x = int.Parse(Console.ReadLine());
        }
        catch (Exception)
        {
            Console.Clear();
            Console.WriteLine("Nu vart det fel, prova igen! (Välj med siffror)\n---------------------\nTryck på valfri tangent för att gå tillbaka...");
            Console.ReadKey();
        }
        switch (x)
        {
            case 1:
                pets[0].Eat();
                break;

            case 2:
                pets[1].Eat();                  
                break;
           
            case 3:
                pets[2].Eat();
                break;

            case 4:
                pets[3].Eat();
                break;
        }
    }
C# 字符串 比较

评论

2赞 Kevin 7/27/2022
“方法 Eat() 接收一个字符串(食物),并将其与动物最喜欢的食物”favFood“进行比较。”好吧,你通常不只是比较事物,你比较它们,然后根据比较做一些事情。你应该如何处理比较
1赞 MakePeaceGreatAgain 7/27/2022
如果您的宠物得到了它最喜欢的食物,该怎么办?
0赞 MakePeaceGreatAgain 7/27/2022
只是一个提示:虽然我可以想象任何可以的东西和东西,但我不知道它在调用它时应该做什么AnimalEatInteractHungryAnimal
0赞 Fildor 7/27/2022
虽然我怀疑 exersize 旨在教授字符串相等性,但“比较”可能意味着许多不同的事情,尤其是在字符串方面。我想我们必须假设“检查(不区分大小写的)相等性”是目标是什么?
1赞 Christian Legge 7/27/2022
如果您已经解决了这个问题,请自己发布解决方案作为答案,然后将其标记为已接受。

答: 暂无答案