C# 陷入了如何将数据传递给函数的困境

C# 陷入了如何将数据传递给函数的困境,c#,function,C#,Function,我想再次寻求一些帮助/指导 这次我试图将信息从一个函数传递到另一个函数,以便完成它 我将在这里发布一个示例: 上面的附加代码与主题无关,您可以假定它是正确的 CalorieIngestion() { Console.WriteLine("What is your name?"); sName = Console.ReadLine(); Console.WriteLine("What day is it 1-8?"); sDay = Convert.

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

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

我将在这里发布一个示例: 上面的附加代码与主题无关,您可以假定它是正确的

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”旁边写上()

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

函数名(){}

一个参数是:

VariableName

因此,在你的情况下:

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;
我希望这能帮助其他正在努力传递参数的人。多谢各位 @布拉德利网络

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

你读过C#教程了吗?另外,请发布编译的代码。实际上我说的是什么,当然我会去搜索c#教程,我现在将删除它,我意识到当这是一项如此基本的任务时寻求帮助是多么徒劳。这个问题并不可怕,但非常基本。类名是什么?它是热量输入吗?如果是这样,那么您应该添加类。另外,一般来说,不要在构造函数中放入任何花费大量时间的内容。与控制台I/O一样,请注意,大多数专业程序员不会像您这样为变量添加前缀。过了一段时间,很明显,这是一个参数(“p”),这是一个字符串(“s”)。约翰,我只是在做我被告知要做的事情,我不是一个专业程序员,我是一个新手,我的大学告诉我要加前缀来创造熟悉感。在我完成第一年的学习后,我们可以假设我将使用正确的语法。@John Saunders不,对不起,我不想透露这些信息。