gpt4 book ai didi

c# - 为什么 .NET 格式字符串中的转义括号(大括号)是 '{{' 或 '}}"而不是 '\{' 或 '\}'

转载 作者:太空狗 更新时间:2023-10-29 22:18:59 28 4
gpt4 key购买 nike

有个问题how-to-escape-brackets-curly-braces-in-a-format-string-in-net但是没有人可以描述原因吗?为什么使用 {{}} 而不是 \{\}

例如。 string s = String.Format("{{ 大家好 }}"); 为什么不在字符串中使用 \{ 之类的字符串转义,例如:\b\n\t

**我想知道深度原因还是语言设计**

最佳答案

格式字符串在运行时解释(不是在编译时)

如果 C# 允许输入 \{\} 它将作为 { 存储在字符串中> 和 分别。 string.Format 函数然后读取该字符串以决定是否要解释格式化指令,例如{0}。由于 \{ 在字符串中产生了 { 字符,因此 String.Format 函数无法决定将其作为一种格式指令或作为文字 {。因此,string.Format{{ 视为文字 {。类似 }} 用于 }

在 C# 中转义:

- character literal escaping:   e.g. '\'', '\n', '\u20AC' (the Euro € currency sign), '\x9' (equivalent to \t))
- literal string escaping: e.g. "...\t...\u0040...\U000000041...\x9..."
- verbatim string escaping: e.g. @"...""..."
- string.Format escaping: e.g. "...{{...}}..."
- keyword escaping: e.g. @if (for if as identifier)
- identifier escaping: e.g. i\u0064 (for id)

关于c# - 为什么 .NET 格式字符串中的转义括号(大括号)是 '{{' 或 '}}"而不是 '\{' 或 '\}',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24113790/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com