C# 为什么我';“我收到错误消息”;“返回类型错误”;

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

我得到了这样的错误

字符串计算文件校验和。表单1。按钮4\u单击(对象, System.EventArgs)“”的返回类型错误

我不明白为什么会这样

我想将文件校验和返回到文本框
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工作吗?