【发布时间】:2020-09-06 19:34:16
【问题描述】:
Item.cs
public class Item
{
public int itemId;
public string itemName;
public string itemDescription;
public string itemType;
}
Food.cs
public class Food
{
public Item Apple;
public Item Plum;
}
我正在尝试这个:
Food food = getFood();
string wantedObj = getObjName();
print(food." wantedObj ".itemDescription);
那么有可能做这样的事情吗?我不知道wantedObj,可能是Apple 或Plum,所以我们需要获取信息取决于wantedObj 字符串。
我不知道如何通过对象名称查找类对象。
【问题讨论】:
-
不确定这里的最终目标是什么
-
有
Food没有有属性“Apple”和“Plum”但是有一个Dictionary<string,Item>,其中“wantedObj”是关键。 -
我觉得您应该改用多态性。这是一个 XY 问题;您正在尝试解决一些问题并提出了这个不起作用的糟糕解决方案,所以您现在要求我们修复您损坏的解决方案.. 我们应该做的是帮助您找到更好的解决方案,并且把这个扔掉。告诉我们更多关于您的实际问题
-
这能回答你的问题吗? Finding the Concrete Type behind an Interface instance我认为第二个答案是正确的。
标签: c#