我知道在哪里可以找到C#5语言规范,但我无法在任何地方找到C#6语言规范.
C#6语言规范在哪里?
现在(C#4.0)我们的日志记录方法看起来像
public void Log(string methodName, string messageFormat, params object[] messageParameters)
Run Code Online (Sandbox Code Playgroud)
记录器执行字符串格式化的位置,以便调用者没有放置String.Format来创建一个很好的日志消息(如果没有附加logviewer,则允许记录器跳过字符串格式).
使用c#5.0我想通过使用新的CallerMemberName属性来摆脱methodName参数,但我不知道如何将它与'params'关键字结合起来.有没有办法做到这一点?
如何为布尔值指定与其他类型的其他格式字符串一致的格式字符串?
给出以下代码:
double d = Math.PI;
DateTime now = DateTime.Now;
bool isPartyTime = true;
string result = $"{d:0.0}, {now:HH:mm}, time to party? {isPartyTime}";
Run Code Online (Sandbox Code Playgroud)
我可以为每个原始类型指定一种格式,但bool看起来除外。我知道我能做到:
string result = $"{d:0.0}, {now:HH:mm}, time to party? {(isPartyTime ? "yes!" : "no")}";
Run Code Online (Sandbox Code Playgroud)
但这仍然与其他类型不一致。
有没有一种方法可以使插值字符串中的布尔值保持一致?
PS我确实搜索了包含此链接的答案:
/sf/ask/tagged/c/%23+string-interpolation+boolean
令人惊讶的是结果为零。