C# 返回函数
本文关键字:函数 返回 | 更新日期: 2023-09-27 18:08:52
private void button3_Click_1(object sender, EventArgs e)
{
textBox2.Text = "$" + (textBox1.Text = string.Format(System.Globalization.CultureInfo.GetCultureInfo("us-US"), "{0:#,##0.00}", double.Parse(textBox1.Text)));
string digits, temp;
long numberVal;
string[] powers = new string[] { "Thousand ", "Million " };
string[] ones = new string[] { "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen" };
string[] tens = new string[] { "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety" };
string[] currency = new string[] { "Dollars" };
string wordValue = "";
if (numberVal == 0)
return "Nol";
if (numberVal < 0)
{
wordValue = "negative ";
numberVal = -numberVal;
}
long[] partStack = new long[] { 0, 0, 0, 0 };
int partNdx = 0;
while (numberVal > 0)
{
partStack[partNdx++] = numberVal % 1000;
numberVal /= 1000;
}
for (int i = 3; i >= 0; i--)
{
long part = partStack[i];
if (part >= 100)
{
wordValue += ones[part / 100 - 1] + " Ratus ";
part %= 100;
}
if (part >= 20)
{
if ((part % 10) != 0) wordValue += tens[part / 10 - 2] +
" " + ones[part % 10 - 1] + " ";
else wordValue += tens[part / 10 - 2] + " ";
}
else if (part > 0) wordValue += ones[part - 1] + " ";
if (part != 0 && i > 0) wordValue += powers[i - 1];
}
textBox3.Text = return wordValue;
}
我正在尝试将长类型的数字转换为字符串单词。
为什么我的函数返回错误,是我用错了还是别的什么?
在 C# 中,return
关键字用于从函数返回值。在您的情况下,您没有返回任何内容,但您希望为某个属性分配一个值,这是完全不同的东西。
删除return
关键字。
编辑
似乎您复制并粘贴了一些代码,而没有真正了解它的作用。您从中复制代码的函数将数字转换为其文本表示形式,并将该文本表示形式作为文本返回。
现在,您尝试在事件处理程序中使用此代码,直接将结果分配给文本框。如果您将任何return "..."
语句替换为
{
textbox3.Text = "...";
return;
}
最干净的解决方案是将代码复制到函数中并正确使用它。
需要 return
关键字的函数示例:
string SayHello(string user)
{
return "Hello " + user;
}
不返回值但可以使用return
中断的方法的示例:
void DoSomething()
{
if (!myConditionIsMet)
return;
DoSomethingElse();
}
不能使用 return
关键字的作业示例:
string name = "Brad";
name = name + " Pitt";
textBox3.Text = return wordValue;
不是有效的 C# 代码。
写这样的东西:
textBox3.Text = wordValue;
并且没有返回,正如函数定义:void
,没有什么可返回的。
试试这个:
//textBox3.Text = return wordValue;
textBox3.Text = wordValue;
不正确的文本框3.文本 = 返回单词值;
制作如下
文本框3.文本 = 单词值;
由于函数是空的,因此没有什么可以返回的。
您的方法(button_click事件(具有包含void
返回类型的方法符号。
这意味着该方法不打算返回任何内容。
同样,return
语句不能作为赋值语句的一部分放置(不能将其放在"="的右侧(。
正如其他人所说,您只需删除return
关键字即可获得所需的结果。 在检查numberval == 0
之后,您还需要删除代码中更靠上的 return
语句
需要返回的位置是其标头指示返回类型(void
以外的任何方法(。 在这些方法中,您在它自己的语句的开头使用 return
来返回它后面的值或对象。
例如:
/* In a method somewhere */
int foo = Bar();
/* The Bar method */
public int Bar()
{
/* Whatever code runs */
return 3; //return an object or value whose type matches the type the method signiture says you return
}