使用.NET逐字字符串带参数构建字符串遇格式错误求助
解决逐字字符串+参数构建查询的格式问题
你的问题出在逐字字符串里的大括号没转义,string.Format会把单个{/}当成格式占位符解析,导致最终字符串结构错乱,同时可以调整引号写法让逻辑更清晰。
正确写法(string.Format版)
var query = string.Format(@" query {{ projects (hubId: ""{0}"") {{ results {{ id name }} }} }}", hubId);
- 逐字字符串中用
{{和}}表示字面的{和},避免被string.Format误处理 - 用
""输出单个双引号,确保hubId被正确包裹在引号内
更简洁的写法(C# 6+ 字符串插值)
如果你的项目用C# 6及以上版本,推荐用字符串插值,代码更直观:
var query = $@" query {{ projects (hubId: ""{hubId}"") {{ results {{ id name }} }} }}";
直接在逐字字符串里用{hubId}插入参数,同样注意大括号和双引号的转义规则。
内容的提问来源于stack exchange,提问作者Augusto Goncalves
相关产品推荐
相关产品推荐

