"方法必须有一个返回类型"和"返回后不能跟一个对象表达式"

use*_*672 1 c# return syntax-error

我将此方法添加到公共静态类

    public static LogMessage(Exception ex)
    {
        Trace.WriteLine(ex.ToString());
        return ex; 
    }
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到一条消息,说"方法必须有一个返回类型"

在返回时,我还收到一条消息,说"由于'Util.logMessage(System.Exception)'返回void,返回关键字后面不能跟一个对象表达式"

我该如何纠正?

Ree*_*sey 11

您需要更改声明以返回异常:

public static Exception LogMessage(Exception ex)
{
    Trace.WriteLine(ex.ToString());
    return ex; 
}
Run Code Online (Sandbox Code Playgroud)

请注意,根据使用情况,允许这是一个通用方法可能是有意义的:

public static T LogMessage<T>(T ex) where T : Exception
{
    Trace.WriteLine(ex.ToString());
    return ex; 
}
Run Code Online (Sandbox Code Playgroud)

这将允许您以强类型方式使用生成的异常.

或者,您可以不返回异常,因为在任何情况下,Logging都不需要返回异常:

public static void LogMessage(Exception ex)
{
    Trace.WriteLine(ex.ToString());
}
Run Code Online (Sandbox Code Playgroud)