我想再次寻求帮助/指导。
这次我试图将信息从一个功能传递到另一个功能,以便完成。
我在这里发布一个例子: 在此之上的其他代码但与主题无关,您可以认为它是正确的。
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"。
答案 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!