を提供するだけでプロパティを取得すると、私はあなたが助けてくれることを願っています。 次のクラスhierachyが与えられます。この特定の質問で今何時間も探している文字列名
public class Toon
{
public Skillset skillset;
public Toon()
{
skillset = new Skillset();
}
}
public class Skillset
{
public Skill Fight;
public Skill Trade;
public Skill Talk;
public Skillset()
{
Fight = new Skill() { name = "Fight", value = 10 };
Trade = new Skill() { name = "Trade", value = 12 };
Talk = new Skill() { name = "Talk", value = 15 };
}
}
public class Skill
{
public string Name;
public int Value;
public int Rank
}
これはToon.Skillset.Fightなどの構文を提供することである
今質問:私は、彼らがしている場合は、ランダムに、スキルを向上させることができるようにしたい リストであるお気に入りリストに表示されます。だから、basicly
:
public void setSkill(string skillname, Toon toon, int value)
{
=> get property and set it to value
}
よう
setSkillは( "ファイト"、NewToon、30); Toon.Skillset.Fightを30に設定します。
私は十分に説明できると思いますが、私はどんな入力にも感謝しています。この問題をうまく解決するためにReflectionを聞いたことがありますが、まだ答えは見つかりませんでした。
PS:Toonのリストを取得するだけでは助けにならず、構文が破棄されます。
ところで、クラスにはプロパティがありません。 – LarsTech
あなたはインデクサーを使うことができます。 公共スキルこの[列名] { のget { スイッチ(名) { ケース "ファイト": リターンファイト。 ケース "貿易": 返品貿易; ケース「トーク」: return talk; デフォルト: 戻り値null; } } } –
でも、最終的なモデルには約30個のフィールドがあるので、私にはそれほど気分が悪いです。いくつかのフィールドが用意されていれば、あなたは当然です。 – Ceron