这段代码让我在 vs2013 中出错 ...
我现在不明白为什么......有人可以帮助我吗?!
我的问题是我不知道 =>
的含义以及如何修复错误
using System;
namespace SmartStore.Core.Logging
{
public static class LoggingExtensions
{
public static bool IsDebugEnabled(this ILogger l) => l.IsEnabledFor(LogLevel.Debug);
public static void Fatal(this ILogger l, string msg) => FilteredLog(l, LogLevel.Fatal, null, msg, null);
public static void Fatal(this ILogger l, Func<string> msgFactory) => FilteredLog(l, LogLevel.Fatal, null, msgFactory);
public static void ErrorsAll(this ILogger logger, Exception exception)
{
while (exception != null)
{
FilteredLog(logger, LogLevel.Error, exception, exception.Message, null);
exception = exception.InnerException;
}
}
private static void FilteredLog(ILogger logger, LogLevel level, Exception exception, string message, object[] objects)
{
if (logger.IsEnabledFor(level))
{
logger.Log(level, exception, message, objects);
}
}
private static void FilteredLog(ILogger logger, LogLevel level, Exception exception, Func<string> messageFactory)
{
if (logger.IsEnabledFor(level))
{
logger.Log(level, exception, messageFactory(), null);
}
}
}
最佳答案
在这种情况下,=>
表示一个expression-bodied 成员 并且等同于:
public static void Fatal(this ILogger l, Func<string> msgFactory)
{
return FilteredLog(l, LogLevel.Fatal, null, msgFactory);
}
但是,此语法是在 C# 6 中引入的,它需要 Visual Studio 2015 编译器或更新版本。切换到方法语法或升级您的 visual studio 版本。
关于c# - VS2013 C# 函数声明 => 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44013095/