【问题标题】:error return keyword must not be followed by an object expression错误返回关键字后面不能跟对象表达式
【发布时间】:2016-12-22 19:29:17
【问题描述】:

return(match) 让我头疼!当我将其更改为 Console.WriteLine(match) 时,它给了我期望的回报,但是当我尝试使用 return(match) 时,它给了我一个错误。我只是不知道要在这里改变什么,所以任何建议都将不胜感激!

问候,詹姆斯

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace ReadTextFile
{
    class Program
    {
        static void Main(string[] args)

        {

            List<string> fileLines = new List<string>();

            using (var reader = new StreamReader("test.txt"))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    fileLines.Add(line);
                    string pattern = @"(\w+)@(\w+).([a-z]+)";
                    Match match = Regex.Match((line), pattern);
                    if (match.Success)
                    {
                        return(match);                        
                    }


                }

            }

【问题讨论】:

  • Main 是一个void 函数。你要回到谁身边?
  • 您不能在 void 方法中使用 return。你想用这个值做什么?
  • 看起来你想退出你的while循环,只需使用break;语句
  • 你要输出匹配的值吗?为应用设置退出代码?

标签: c#


【解决方案1】:

Main 返回 void 如果您想返回其他内容,请更改签名。请注意,Main 的返回值通常称为错误代码,其中非零被视为错误。

如果您创建另一个函数并将逻辑放入其中,则可以使用 return。

另一方面,如果您只想离开while,则需要将Match match; 设置在string line; 之后并使用break; 而不是return 退出。

【讨论】:

  • 感谢您的回复。我不确定我是否完全明白你的意思,但我会稍后再试!
【解决方案2】:

您使用的是 void 方法 (void Main)。 void 方法没有返回值,所以只允许 return; 本身。

顺便说一句,return 在 C# 中不是函数,它是一个语句,所以不需要括号。

【讨论】:

  • 好的,错误消失了。当我使用return时,会返回“match”的值,对吗?
  • @JamesW 您无法在 Main 中返回 match,因为 Main 的预期返回值是 void,这意味着它不希望得到返回值,并且当它有返回值时实际上会出错。
  • 好的,明白了,没有价值,只是返回!。那么我要更改什么(无效?)以获取匹配返回的值?如果我将其更改为“字符串”,则下一个错误是: CS0161:'Program.Main(string[])':并非所有代码路径都返回值 CS0029:无法将类型 'System.Text.RegularExpressions.Match' 隐式转换为' string “match”的值应该用作电子邮件解析器的输入字符串
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-03
  • 1970-01-01
  • 2020-02-10
  • 2016-09-26
  • 2012-07-22
  • 2013-06-04
  • 1970-01-01
相关资源
最近更新 更多