我正在尝试使用void方法将25添加到stdNumber(在文本框中输入任何内容)..
public void IncreaseStudents(int num)
{
int.Parse(textBox3.Text + num);
}
private void button1_Click(object sender, EventArgs e)
{
School s1 = new School();
s1._schlName = textBox1.Text;
s1._schLevel = textBox2.Text;
s1._stdNumber = int.Parse(textBox3.Text);
listBox1.Items.Add(s1._schlName);
listBox1.Items.Add(s1._schLevel);
listBox1.Items.Add(s1._stdNumber + IncreaseStudents(25)); //throws an error here
正如您所看到的,School是一个类名,SchName和schLevel是对象并且正在使用字符串,而stdNumber正在使用int。
我无法弄清楚如何使用void添加数字。它在方法中使用int但我需要使用void。请帮忙。
答案 0 :(得分:2)
使用out
参数。
示例:
public void AddNumbers(int a, int b, out int result)
{
result = a + b;
}
像这样使用:
int a = 5;
int b = 3;
int result;
AddNumbers(a, b, out result);
Console.WriteLine(result); // Prints "8"
注意:这有点滥用out
参数,我想这个任务只是教你如何使用它。实际上,当返回值完成工作时,永远不要使用out
参数。
编辑:您的一组限制绝对是奇怪的,但out
参数仍应适合您。
public void IncreaseStudents(int num, out int result)
{
result = num + int.Parse(textBox3.Text);
}
private void button1_Click(object sender, EventArgs e)
{
School s1 = new School();
s1._schlName = textBox1.Text;
s1._schLevel = textBox2.Text;
s1._stdNumber = int.Parse(textBox3.Text);
int result;
IncreaseStudents(25, out result);
listBox1.Items.Add(s1._schlName);
listBox1.Items.Add(s1._schLevel);
listBox1.Items.Add(result);
}
答案 1 :(得分:1)
要使IncreaseStudents
以您想要的方式工作,您需要更改两件事:您需要返回一个值,这意味着它不能是void
。您需要更改将textBox3.Text
转换为整数的方式。你不解析整个表达式textBox3.Text + num
; num
已经是一个数字。您需要(或想要)解析的所有内容都是textBox3.Text
,因为它是一个字符串。我们将使用不同的解析方式,因此如果文本不代表数字,它将礼貌地失败而不是抛出异常。
public int IncreaseStudents(int num)
{
int n;
if (int.TryParse(textBox3.Text, out n))
{
return n + num;
}
else
{
MessageBox.Show("Not a number: " + textBox3.Text);
return num;
}
}
然后这行代码应该可以正常工作 - 除非s1._stdNumber
是你无法添加的奇怪的东西。
listBox1.Items.Add(s1._stdNumber + IncreaseStudents(25));
但那不是作业。作业说你必须使用虚空。所以,另一个尝试:
public void IncreaseStudents(int num, out int result)
{
int n;
if (int.TryParse(textBox3.Text, out n))
{
result = n + num;
}
else
{
MessageBox.Show("Not a number: " + textBox3.Text);
result = num;
}
}
并且这样打电话:
int result = 0;
IncreaseStudents(25, out result)
listBox1.Items.Add(s1._stdNumber + result);
傻,但如果你的导师想要那个,那就是他想要的。