坚持如何将数据传递给函数

时间:2014-11-26 22:51:12

标签: c# function

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

这次我试图将信息从一个功能传递到另一个功能,以便完成。

我在这里发布一个例子: 在此之上的其他代码但与主题无关,您可以认为它是正确的。

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(),但我不太确定如何...我的直觉告诉我写在CalorieCount旁边的()#34; psName"和" psDay"。

2 个答案:

答案 0 :(得分:2)

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

  

<访问修饰符> <返回类型> FunctionName(< ListOfParameter>){<功能体> }

参数是:

  

<输入> VARIABLENAME

所以在你的情况下:

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

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

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

顺便说一下,你通常不会在C#中使用“c”,“s”等样式变量名。

答案 1 :(得分:0)

以下是我为解决这个问题所做的工作

     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!