C# 两个类如何正确地将值从类A返回到类B

C# 两个类如何正确地将值从类A返回到类B,c#,C#,我有两节课。第一个类将用户输入作为字符串。用户可以选择例如:香蕉、苹果、葡萄和蓝莓 class Choice { string fruit; public void ChooseFruit() { Console.WriteLine("Enter [bananas] or [apples] or [grapes] or [bluebarries]"); fruit = Console.ReadLine(); ...

我有两节课。第一个类将用户输入作为字符串。用户可以选择例如:香蕉、苹果、葡萄和蓝莓

class Choice
{
    string fruit;
    public void ChooseFruit()
    {
        Console.WriteLine("Enter [bananas] or [apples] or [grapes] or [bluebarries]");
        fruit = Console.ReadLine();
        ...
    }
}
第二类存储每个水果的变量,例如,如果香蕉数量=102.4,价格=12.34,体积=16.3,则每个水果的变量不同

如何以适当的方式将所选水果的所有变量数量、价格、数量返回到第一级

[编辑] 我试过类似的方法,但效果不好:

class Choice
{
    string fruitName;
    float amount, price, volume;
    public void ChooseFruit()
    {
        Console.WriteLine("Enter [bananas] or [apples] or [grapes] or [bluebarries]");
        string fruitName = Console.ReadLine();

        Fruit f1 = new Fruit(fruitName);
        amount = f1.Amount;
        price = f1.Price;
        volume = f1.Volume;
        //...................//
    }
}
class Fruit
{
    public float Amount { get; private set; }
    public float Volume { get; private set; }
    public float Price { get; private set; }

    public Fruit(string name)
    {
        if (name.ToLower() == "bananas")
        {
            Amount = 12;
            Volume = 1.6f;
            Price = 27;
        }
        else if (name.ToLower() == "grapes")
        {
            Amount = 12;
            Volume = 1.6f;
            Price = 27;
        }
        // AND OTHERS //
    }
}

下面是一个快速实现:

public enum Fruits {
    Bananas,
    Apples,
    Grapes,
    Blueberries
}

public class FruitInfo
{       
    public Fruits Fruit { get; }
    public decimal Price {get; set}
    ...   
}

// TODO: Populate this dictionary with all your fruit info
private Dictionary<Fruits , FruitInfo> _fruitDatabase;

public FruitInfo ChooseFruit()
{
    while(true)
    {
        Console.WriteLine("Choose [bananas], [apples], [grapes], or [blueberries]: ");
        var input = Console.ReadLine();
        Fruits selection;

        if(!Enum<Fruits>.TryParse(input, true, out selection))
        {
            Console.Error.WriteLine("Invalid Fruit Selection, Try Again.");
            continue;
        }

        return _fruitDatabase[selection];
    }
}

看来你想让社区来解决你的学校作业

无论如何,试着看一看

甚至更好

。。看看你能不能理解

祝你好运
/安德斯

也向你展示了你所属的其他职业。欢迎来到SO,阿列克西。请告诉我们你尝试了什么-即使失败了。这是你最好的尝试。@Fildor我编辑了文章并粘贴了代码。对初学者来说还不错。下面是两个很好的答案,你可以从中获得灵感。只是一个一般提示:如果处理货币金额,不要使用浮点类型float,double。改用十进制,否则你很快就会遇到舍入错误和/或意外结果的问题。谢谢大家的帮助。我不再是学生了。我试图通过udemy/youtube学习C,在编写代码的过程中,我只是有一些疑问。我不认为在这种情况下,我要寻找的是遗传和多态性。