是否可以按名称访问属性,这是一个变量?

研究反射,但这似乎不是这里的答案?我明明是菜鸟。我正在尝试/为新的 Battletech 游戏的 mod 做出微小的贡献。


我有这个Dictionary并想使用它的键来设置属性,foreach如下所示。我不知道这是在编译时还是运行时,我猜是编译时...


我把 *limb* 作为伪代码放在我想象它可能如何工作的地方。该属性mechDef.Head是一个类型对象,LocationLoadoutDef其属性CurrentInternalStructure为float。


希望这是有道理的!


非常有义务提供任何帮助。


public class Settings {

    public readonly Dictionary<string, bool> LimbRepair = new Dictionary<string, bool> {

        { "Head", false },

        { "LeftArm", false },

        { "RightArm", false },

        { "CenterTorso", false },

        { "LeftTorso", false },

        { "RightTorso", false },

        { "LeftLeg", false },

        { "RightLeg", false },

    };

}


MechDef mechDef = new MechDef

       (__instance.DataManager.MechDefs.Get(id), __instance.GenerateSimGameUID());


foreach (string limb in settings.LimbRepair.Keys) {

    if (!settings.LimbRepair[limb]) {                          

        mechDef.*limb*.CurrentInternalStructure = Math.Max

                    (1f, mechDef.*limb*.CurrentInternalStructure * (float)rng.NextDouble());

}


当年话下
浏览 181回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP