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

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相关问答推荐

为什么$NULL在ForEach-Object{}和Foreach()中的行为不同?

.NET restore/build在使用组织包的Github Action工作流中调用时获得401

如何手动注入依赖注入

F#:跨度、提升和底部类型(或缺乏)

如何在 FtpWebRequest 之前判断 FTP 上是否存在文件

.gitignore 和 Visual Studio 项目:忽略 bin/Debug 目录但不忽略 bin/Release 目录

如何使用 C# 关键字作为属性名称?

HttpClient 请求抛出 IOException

如何获取 Sql Server 数据库中所有模式的列表

生产代码中的 System.Diagnostics.Debug.WriteLine

为什么 .NET 中没有可序列化 XML 的字典?

ReaderWriterLock 与锁{}

struct 中需要覆盖什么以确保平等正常运行?

如何使用 NUnit(或可能使用另一个框架)测试异步方法?

无法将文件 *.mdf 作为数据库附加

多个添加的实体可能具有相同的主键

单元测试 C# 保护方法

如何确定字符串是 C# 中的有效 IPv4 还是 IPv6 地址?

.NET 配置文件 configSource 在应用程序目录文件夹之外

.NET 中的 java.lang.IllegalStateException?