【发布时间】:2015-03-14 07:22:02
【问题描述】:
我一直在研究一个可以根据化学式计算分子量的程序。 到目前为止,它运行良好,直到发生此错误。我想制作一个拆分化学式的数组(它工作正常)。从这里我想进行一个方法调用,将数组发送到另一个方法。它用于从化学式中的元素计算分子量,并将其添加到新列表中。然后将列表返回到第一个方法。这是代码(仅显示 1 个元素或代码太大);
private void Textbox1_TextChanged(object sender, EventArgs e)
{
string input = Textbox1.Text;
string pattern = @"([A-Z][a-z]?\d*|[A-Z]?\d*)";
string[] substrings = Regex.Split(input, pattern);
MoleculeweightCalculator(substrings);
Textbox2.Text = Convert.ToString(MoleculeWeightList.Sum());
}
private static MoleculeweightCalculator(string[] substrings)
{
List<double> MoleculeWeightList = new List<double>();
foreach (string match in substrings)
{
if (match == "H")
{
MoleculeWeightList.Add(1.008);
}
}
return MoleculeWeightList;
}
问题是它不允许我将数组发送到另一个方法并将列表再次返回到第一个方法。有什么想法有什么问题吗?或者如何解决?
【问题讨论】:
-
return为小写,MoleculeweightCalculator需要在方法签名中返回类型,本例中为:List<double> -
另外,您可能希望将 return 语句移到 foreach 循环之外。
-
哦,是的,return 在 foreach 之外。只是在这里写错了:)
标签: c# arrays return method-call