我不明白为什么这段代码无法编译:

var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";

如果我把它分开,效果很好:

var desc = isDescending ? " desc" : string.Empty;
var result = $"{fieldName}{desc}";

推荐答案

根据这documentation条:

插值字符串的 struct 如下所示:

{ <interpolationExpression>[,<alignment>][:<formatString>] }

问题是冒号用于表示格式,例如:

Console.WriteLine($"The current hour is {hours:hh}")

解决方案是在括号中添加条件:

var result = $"Descending {(isDescending ? "yes" : "no")}";

.net相关问答推荐

在PowerShell中,XML子对象和属性是对象属性.它怎麽工作?

DotNet COM初始化问题

为什么脚本不从 _Layout 加载并且必须添加到部分视图中?

为什么 ULong > 16 位的数学会变得不稳定?

如何在 NET 5 / 6 中使用 Direct3D11CaptureFramePool

NonSerialized 属性

如何在 C# 中创建表达式树来表示String.Contains("term")?

将 BitmapImage 转换为 Bitmap,反之亦然

ASP.NET MVC:隐藏字段值不会使用 HtmlHelper.Hidden 呈现

每第 N 个字符/数字拆分一个字符串/数字?

在 WPF 窗口中获取当前聚焦的元素/控件

使用泛型装箱和拆箱

序列化私有成员数据

Microsoft.Practices.ServiceLocation 来自哪里?

如何将 NuGet 与 Visual C# Express 一起使用?

新的 netstandardapp 和 netcoreapp TFM 有什么区别?

解密 .NET clr20r3 异常参数 P1..P10

场与财产.性能优化

判断 .NET 中的目录和文件写入权限

自创建数据库以来,支持ApplicationDbContext上下文的模型已更改