卡在如何将数据传递给函数上
本文关键字:函数 数据 | 更新日期: 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!