从数据中获取值(不是列表或字典)

对不起,我是新手,我不知道如何在标题中正确地提出我的问题。我有一个数据库:


class PlayerData

    {

        public ulong id;

        public string name;

        public int kills;

        public int deaths;

    }

我想返回与请求的键对应的值


object getStats(ulong uid, string stat)

    {

        var player = BasePlayer.FindByID(uid);

        PlayerData data = PlayerData.Find(player);


        object value = data.TryGetValue(stat); // I know this ain't right


        return value;

    }

例子:


int kills = getStats(123456, kills); //will ask for the value of "kills" in the data. Return data.kills

stat 可以是数据中的任何内容(id、名称、杀戮数、死亡数)


繁华开满天机
浏览 154回答 2
2回答

森栏

我想您在这里尝试做的是根据对象名称获取对象值?如果是这种情况,我认为您可以使用反射来实现这一点。示例代码:class PlayerData{    public ulong id;    public string name;    public int kills;    public int deaths;}object getStats(ulong uid, string stat){    var player = BasePlayer.FindByID(uid);    PlayerData data = PlayerData.Find(player);    object value = data.GetType().GetProperty(stat).GetValue(data, null);    return value;}
打开App,查看更多内容
随时随地看视频慕课网APP