此函数始终返回 null。sString 是一个具有字符串“Name”和字符串“Value”值的类。不要问我为什么不使用常规字符串——这很复杂。这是我的功能:
static string Get_sString(string VarName, ref List<sString> VarList)
{
foreach (sString TestsString in VarList)
{
if (TestsString.Name == VarName)
{
return TestsString.Name;
}
}
return null;
}
它应该返回与 VarName 具有相同 Name 值的实例,并且它可以工作,除了 if 语句始终为 false。我不知道为什么。我实际上有一个几乎相同的类,称为 sDecimal,唯一的区别是 Value 属性是小数,而不是字符串。Get_sDecimal() 与此完美配合,Get_sDecimal() 和 Get_sString() 之间的唯一区别是一个测试 sDecimal 和一个测试 sString。 谢谢!
编辑:这是 sString 类。
class sString
{
public string Name;
public string Value;
/// <summary>
/// String Value variables that may have the same name.
/// </summary>
/// <param name="n">Internal name of variable.</param>
/// <param name="v">Value of variable.</param>
public sString(string n, string v)
{
Name = n;
Value = v;
}
}
编辑:这里有一些输出代码(和输出)来清理。
static string Get_sString(string VarName, ref List<sString> VarList)
{
foreach (sString TestsString in VarList)
{
Console.WriteLine("Looking for: " + VarName);
Console.WriteLine("Comparing with: " + TestsString.Name);
if (TestsString.Name == VarName)
{
Console.WriteLine("Match!");
return TestsString.Name;
}
}
return null;
}
这是输出:
寻找:Q 比较:Q
编辑:我在列表中添加了几个变量。这是新的输出:
寻找:Q 比较:Q 寻找:Q 比较:Z 寻找:Q 比较:变量X
仍然没有匹配。