函数可以读取/返回名称传递给它的字符串的值吗?
例如,如果字符串的值不是“0”,我想通过告诉函数我想要检查哪个字符串来返回true。
public static bool IsEnabled(string sName)
{
if (TenderTypes.<sName> != "0")
{
return true;
}
else
{
return false;
}
}
这主要是为了让我在编码时更快,我希望能够将字符串保留在那里但同时我希望能够通过将它们的值从字符串数字更改为零来禁用它们
答案 0 :(得分:2)
假设你有这样的事情:
class TenderTypes
{
static string myStr = "Some value";
static string anotherStr = "A different value";
// ...
};
并且您希望按字段名称查询该字符串(例如"myStr"
)。
嗯,可以用反射来完成。但首先是另一种选择:
class TenderTypes
{
static Dictionary<string, string> strings =
new Dictionary<string, string>()
{
{"myStr", "Some value},
{"anotherStr", "Some value}
}
//...
}
然后你可以这样编写你的方法:
public static bool IsEnabled(string sName)
{
if (TenderTypes.strings[sName] != "0")
{
return true;
}
else
{
return false;
}
}
然后你可以这样编写你的方法:
public static bool IsEnabled(string sName)
{
var type = typeof(TenderTypes);
var field = type.GetField(sName, BindingFlags.Static);
if (field.GetValue(null) != "0")
{
return true;
}
else
{
return false;
}
}
答案 1 :(得分:0)
不确切地知道你想要实现什么,你的语法看起来像是在尝试查询通用的<>
......这实际上是不可能的。
也许一个简单的dictionary会对你有帮助吗?
创建new Dictionary<string, bool>
也应该在启用或禁用“设置”时帮助您...