卡在如何将数据传递给函数上

本文关键字:函数 数据 | 更新日期: 2023-09-27 18:32:14

我想再次寻求一些帮助/指导。

这次我尝试将信息从一个函数传递到另一个函数以完成它。

我将在这里发布一个例子:上面有其他代码,但与主题无关,您可以假设它是正确的。

CalorieIngestion()
{
Console.WriteLine("What is your name?");
        sName = Console.ReadLine();
        Console.WriteLine("What day is it 1-8?");
        sDay = Convert.ToString(Console.ReadLine());
        if (sDay == "1")
        {
            CalorieCount();
        }
}
CalorieCount()
{ int iCal1;
Console.Clear();
Console.WriteLine("Please enter the amount ingested");
iCal1 = Convert.ToInt32(Console.ReadLine());
using (StreamWriter sw = new StreamWriter(sName + ".txt", true))
{
sw.WriteLine("Calories consumed on " + sDay + "" + iCal1);
}

好的,我想我需要将 sName 变量和 sDay 变量传递给 CalorieCount(),但我不太确定如何...我的直觉告诉我在卡路里计数"psName"和"psDay"旁边的()中写下。

卡在如何将数据传递给函数上

要传递参数,首先需要以接受它们的方式定义函数。函数如下所示:

<访问修饰符> <返回类型> 函数名称 ( <列表参数> ) { <函数体> }

参数为:

<键入>变量名称

所以在你的情况下:

private void CalorieCount(string day, string name) { }

从函数体访问参数,就好像它们是局部变量一样。要调用它,您必须为每个参数提供值:

if (sDay == "1")
{
   CalorieCount(sDay, sName);
}

顺便说一句,您通常不会在 C# 中使用"c","s"等样式的变量名称。

这是我为修复它所做的

     CalorieIngestion()
        {
        Console.WriteLine("What is your name?");
                sName = Console.ReadLine();
                Console.WriteLine("What day is it 1-8?");
                sDay = Convert.ToString(Console.ReadLine());
                if (sDay == "1")
                {
                    CalorieCount(sName, sDay);
                }
        }
      static void CalorieCount(string psName, string psDay)
        { int iCal1;
        Console.Clear();
        Console.WriteLine("Please enter the amount ingested");
        iCal1 = Convert.ToInt32(Console.ReadLine());
        using (StreamWriter sw = new StreamWriter(psName + ".txt", true))
        {
        sw.WriteLine("Calories consumed on " + psDay + "" + iCal1);
        }
return;

我希望这对其他任何在传递参数方面苦苦挣扎的人有所帮助。谢谢@BradleyDotNET

编辑:同样重要的是要确保在传递参数时以相同的顺序传递它们,我先传递了 sName,然后传递了 sDay,但将它们称为 sDay 和 sName,这真的搞砸了 StreamWriter!