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,在编写代码的过程中,我只是有一些疑问。我不认为在这种情况下,我要寻找的是遗传和多态性。