我有两个类:consumableItems.cs和items.cs 基本上,我所要做的就是将items.cs的属性继承到consumableItems.cs
这是我到目前为止所做的事情:
class Item
{
public List<string> itemNames = new List<string>();
public List<int> itemEffects = new List<int>();
}
class consumableItems : Item
{
new public List<string> itemNames = new List<string>() { "Apple", "Orange", "Grapes" };
new public List<int> itemEffects = new List<int>() { 15, 30, 40 };
}
我想要实现的是,无论何时键入&#34; Apple&#34;,控制台窗口都会显示&#34; Apple&#34;和&#34; 15&#34 ;;当我输入&#34; Orange&#34;时,控制台窗口同时显示&#34; Orange&#34;和&#34; 30&#34;。有任何想法吗?对不起,刚开始进行C#编程,我迷路了。 &GT; &LT;哦,最后一个问题,我继承的方式是正确的吗? :/ 谢谢。 ^ ^
答案 0 :(得分:1)
如果您刚开始使用C#,那么从List更改为Dictionnary会怎样?
字典会给你你想要的东西。
使用两个列表,您必须遍历第一个列表以查找索引,然后使用索引访问第二个列表。在这种情况下要小心Exception。
关于继承,你应该检查(public | private | Etc ...),然后查找Interfaces和Abstract
答案 1 :(得分:1)
你正在重新发明轮子,让生活变得艰难。只需使用字典:
var items = new Dictionary<string, int>
{
{ "Apple", 15 },
{ "Orange", 30 },
{ "Grapes", 40 }
};
Console.WriteLine("Apple = {0}", items["Apple"]);
答案 2 :(得分:0)
我建议你定义一个类
class Item {
public string Name { get; set;}
public int Effect { get; set;}
}
然后使用单个List&lt; Item&gt;而不是试图在两个列表之间映射。您可以为控制台输出覆盖类的ToString()方法。
答案 3 :(得分:0)
使用如下例所示的词典:
class Program2
{
class ConsumableItems
{
new public List<string> itemNames = new List<string>() { "Apple", "Orange", "Grapes" };
new public List<int> itemEffects = new List<int>() { 15, 30, 40 };
public Dictionary<string, int> values = new Dictionary<string, int>()
{
{"Apple", 15},
{"Orange", 30},
{"Grapes", 40}
};
}
static void Main()
{
ConsumableItems items = new ConsumableItems();
string key = Console.ReadLine();
Console.WriteLine("\n\n\n");
Console.WriteLine(key + " " + items.values[key]);
Console.ReadKey();
}
}
答案 4 :(得分:0)
您可以使用Dictionary而不是List,
public Dictionary<string, int> FruitValues = new Dictionary<string, int>()
{
{"Apple", 15},
{"Orange", 30},
{"Grapes", 40}
};
Console.WriteLine("Apple Value is {0}", FruitValues["Apple"]);
答案 5 :(得分:0)
使用Key-Value对的任何集合都可以轻松解决相同的业务问题。我的意思是使用字典:
public Dictionary<string, int> FruitsEffect= new Dictionary<string, int>()
FruitsEffect.Add("FruitsName",25);
字典具有键和值对。字典用于不同的元素。我们指定其键类型及其值类型(string,int)。 填充字典并按键获取值。