C# 为什么我';“我收到错误消息”;“返回类型错误”;
我得到了这样的错误 字符串计算文件校验和。表单1。按钮4\u单击(对象, System.EventArgs)“”的返回类型错误 我不明白为什么会这样 我想将文件校验和返回到文本框C# 为什么我';“我收到错误消息”;“返回类型错误”;,c#,textbox,return,C#,Textbox,Return,我得到了这样的错误 字符串计算文件校验和。表单1。按钮4\u单击(对象, System.EventArgs)“”的返回类型错误 我不明白为什么会这样 我想将文件校验和返回到文本框txtFileChecksum 谁能帮帮我 这是按钮后面的代码 private void button4_Click(object sender, EventArgs e) { using (var md5 = MD5.Create()) { string s = BitConverte
txtFileChecksum
谁能帮帮我
这是按钮后面的代码
private void button4_Click(object sender, EventArgs e)
{
using (var md5 = MD5.Create())
{
string s = BitConverter.ToString(md5.ComputeHash(File.ReadAllBytes(txtFileText.Text))).Replace("-", "");
return s;
txtFileChecksum.Text = s;
}
}
编辑
谢谢你们所有人,我已经做到了。。。其工作良好,无返回s您的方法表示其返回类型为
void
,但您返回的是字符串
删除返回s
,它应该可以工作。除了这个返回类型问题外,return
关键字将使您脱离此方法。因此,您将永远无法访问textFileChecksum.Text=s代码>您不应该从返回类型为void的方法返回任何内容。让我再说明一点,函数将向调用函数返回特定值(如果它的返回类型不是void
)。在您的情况下,函数与事件关联,因此它不允许任何其他返回类型
假设如果将方法签名中的返回类型更改为字符串,则会出现错误按钮4\u单击(对象发送者,事件参数e)“返回类型错误
在代码中,语句返回s代码>在那里是不必要的,您的代码在没有该语句的情况下可以完美地工作 因为你的核心问题已经得到了回答,我会给你一个建议。
我建议拆分代码的逻辑部分(计算校验和)和GUI更改部分(文本更改)。例如,编写一个方法来计算校验和,如下所示:
private string CalculateChecksum(string textFileText)
{
using (var md5 = MD5.Create())
{
return BitConverter.ToString(md5.ComputeHash(File.ReadAllBytes(textFileText))).Replace("-", "");
}
}
然后在活动中使用此方法,如:
private void button4_Click(object sender, EventArgs e)
{
txtFileChecksum.Text = CalculateChecksum(txtFileText.Text);
}
请注意,这还允许您计算类中其他位置的校验和,而无需通过传入另一个textFileText来复制代码。private void button4\u单击(object sender,EventArgs e)。这是一种无效的方法。您不能返回任何值。而且,return语句后面的行没有任何意义。它将永远不会被执行,因为您已经用return
离开了方法。那么您想从事件处理程序返回一个不应该这样做的变量吗?你想干什么?如果省略return…
,则不是txtFileChecksum.Text=s代码>工作吗?