C# error return关键字后面不能跟有对象表达式
这场比赛让我头疼!当我将其更改为Console.WriteLine(匹配)时,它会给我预期的返回,但当我尝试使用返回(匹配)时,它会给我一个错误。我只是不知道该在这里做什么改变,所以任何建议都将不胜感激 你好,詹姆斯C# error return关键字后面不能跟有对象表达式,c#,C#,这场比赛让我头疼!当我将其更改为Console.WriteLine(匹配)时,它会给我预期的返回,但当我尝试使用返回(匹配)时,它会给我一个错误。我只是不知道该在这里做什么改变,所以任何建议都将不胜感激 你好,詹姆斯 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Text.RegularExpressions;
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);
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.IO;
使用System.Linq;
使用系统文本;
使用System.Text.RegularExpressions;
使用System.Threading.Tasks;
名称空间ReadTextFile
{
班级计划
{
静态void Main(字符串[]参数)
{
列表文件行=新列表();
使用(var reader=newstreamreader(“test.txt”))
{
弦线;
而((line=reader.ReadLine())!=null)
{
文件行。添加(行);
字符串模式=@“(\w+)@(\w+)([a-z]+)”;
Match=Regex.Match((行),pattern);
如果(匹配成功)
{
返回(匹配);
}
}
}
您使用的是void
方法(void Main
)。void
方法没有返回值,因此只需return;
本身就可以了
顺便说一句,
return
不是C#中的函数,它是一个语句,因此不需要括号。您使用的是void
方法(void Main
)。void
方法没有返回值,所以只需return;
本身就可以了
顺便说一句,
return
不是C#中的函数,它是一个语句,因此不需要括号。Main
如果要返回其他更改签名的内容,则返回一个void
。请注意,Main
的返回值通常称为错误代码,其中非零被视为错误
如果您创建另一个函数并将您的逻辑放入其中,则可以使用return
另一方面,如果您想做的只是在
时离开,匹配;
在字符串行之后;
使用中断;
退出,而不是返回主返回一个无效,如果您想返回其他内容,请更改签名。请注意,Main
的返回值通常称为错误代码,其中非零被视为错误
如果您创建另一个函数并将您的逻辑放入其中,则可以使用return
另一方面,如果你想做的只是离开,而你需要让匹配;
在字符串行之后;
并使用中断;
退出,而不是返回主
是一个无效
函数。你要返回给谁?你不能返回
w我在一个void
方法中。你想用这个值做什么?看起来你当时想退出while循环,只需使用break;
语句你想输出匹配的值吗?设置应用程序的退出代码吗?可能重复的Main
是一个void
函数。你是谁rning to?你不能在void
方法中返回
。你想对该值做什么?看起来你当时想退出while循环,只需使用break;
语句你想输出匹配的值吗?设置应用程序的退出代码?可能重复感谢响应。我很抱歉我不确定我是否完全理解你想说的话,但我会稍后再试!谢谢你的回复。我不确定我是否完全理解你想说的话,但我会稍后再试!好的,错误消失了。当我使用“匹配”时,返回“匹配”的值将返回,对吗?@JamesW您不能在Main中返回match,因为Main的预期返回值为void,这意味着它预期不会获得返回值,并且当它有返回值时实际上会出错。好的,得到了,没有值,只需返回即可。那么我如何更改(void?)以获得匹配返回的值?如果我将其更改为“string”下一个错误是:CS0161:“Program.Main(string[])”:并非所有代码路径都返回值CS0029:无法隐式将类型“System.Text.RegularExpressions.Match”转换为“string”。应将“Match”的值用作电子邮件ParseRok的输入字符串,错误消失。当我使用“Match”时,返回“Match”的值将返回,对吗?@JamesW您不能在Main中返回match,因为Main的预期返回值为void,这意味着它预期不会获得返回值,并且当它有返回值时实际上会出错。好的,得到了,没有值,只需返回即可。那么我如何更改(void?)以获得匹配返回的值?如果我将其更改为“string”下一个错误是:CS0161:“Program.Main(string[])”:并非所有代码路径都返回值CS0029:无法将类型“System.Text.RegularExpressions.Match”隐式转换为“string”。应将“Match”的值用作电子邮件解析器的输入字符串