[英]if-statement inside function
我有这段代码:
public static void Debug(string workName, string message, string logcontext, string exMessage = "")
{
LogEventInfo logEvent = new LogEventInfo(LogLevel.Debug, logcontext, message + ": " + exMessage);
...
}
如您所见,Debug方法的最后一个参数是可选的( string exMessage = ""
)。 这意味着,如果我按原样运行此代码,则如果exMessage到达,看起来会很好: "...message: exMessage"
然而,如果没有提供exMessage,它看起来是这样的: "...message: "
(注意末尾:
)。
当然,可以使用以下方法轻松解决此问题:
if(!String.IsNullOrEmpty(exMessage)
{
...(...,message + ": " + exMessage);
}
else
{
...(...,message);
}
我想要一个更漂亮的方法。 就像以下行中有什么一样:
...(...(!exMessage -> ,message | else -> ,message + ": " + exMessage));
在C#中是否有某种方式可以执行此内联if语句? 我可以一些使用lambdas吗? (我对lambda的整个概念都是新手)
您可以使用条件运算符
exMessage == "" ? message : message + ": " + exMessage
有一个叫做?:的运算符。 您可以这样使用它:
var logText = string.IsNullOrEmpty(exMessage) ? message : message + ": " + exMessage;
LogEventInfo logEvent = new LogEventInfo(LogLevel.Debug, logcontext, message + (!string.IsNullOrEmpty(exMessage) ? ": " : string.Empty) + exMessage);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.