如何获取方法内部传递的参数的 nameof() ?

2024-04-26

我正在为我的项目寻找解决方案,我有一个Dictionary<string, object>一个辅助方法女巫正在尝试从这本字典中获取一些特定的值。

正如你在下面看到的,如果我没有stringKey,我正在努力做到这一点stringKey来自@object(现在它会返回"object")。当然,我可以通过打电话来做到这一点,但这对我来说看起来太糟糕了。

在这个方法中有什么办法可以做到这一点吗?

public static bool GetValue<T>(Dictionary<string, object> dict, ref T @object, 
    string stringKey = "") 
{
    if (string.IsNullOrEmpty(stringKey))
    {
       stringKey = nameof(@object);
    }

    dict.TryGetValue(stringKey, out var Object);
    if (Object != null)
    {
        @object = (T)Object;
        return true;
    }

    return false;
}

调用示例:

DPH.GetValue(dictParam, ref Browser);

方法的期望是stringKey“浏览器”,就像在这种情况下一样:

DPH.GetValue(dictParam, ref Browser, nameof(Browser));

有特定的需求,我们目前无法将该字典重构为我们的对象或类,调用nameof()是可能的,但不是解决方案。


你不能。

对不起。有一些不错的解决方法,但它们都包括彻底改变您现在所做的事情。您无法通过这种方式获取变量的名称。

唯一与你想要的相似的是System.Runtime.CompilerServices.CallerMemberName这只适用于获取调用您的函数的函数的名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取方法内部传递的参数的 nameof() ? 的相关文章

随机推荐