gpt4 book ai didi

c# - 字符串插值 C# : Documentation of colon and semicolon functionality

转载 作者:行者123 更新时间:2023-12-02 03:24:10 24 4
gpt4 key购买 nike

我找到了 FizzBu​​zz 测试的 codegolf 答案,经过一番检查后,我意识到我不知道它实际上是如何工作的,所以我开始调查:

for(int i=1; i<101;i++)
System.Console.Write($"{(i%3*i%5<1?0:i):#}{i%3:;;Fizz}{i%5:;;Buzz}\n");

我将其放入 dotnetfiddle 并确定第一部分的工作原理如下:

{(BOOL?0:i):#}

当 BOOL 为 true 时,条件表达式返回 0,否则返回数字。

但是,除非是 <> 0,否则不会返回该数字。我猜这就是 :# 的工作人物。我找不到关于 :# 的任何文档字符工作。谁能解释一下冒号/散列或给我指出正确的方向?

第二部分:

{VALUE:;;Fizz}

何时 VALUE = 0那么什么也没有打印。我认为这是由第一个 ; 决定的字符[结束语句]。第二个;字符确定 'if VALUE <> 0然后打印我后面的内容。'

再次,有人有关于在字符串插值中使用分号的文档吗,因为我找不到任何有用的东西。

最佳答案

这一切都包含在 String Interpolation documentation 中,特别是关于 Structure of an Interpolated String 的部分,其中包括:

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

以及这三个部分中每一个部分的更详细描述。

该结构的格式字符串部分在单独的页面上定义,您可以在其中使用 standardcustom数字类型的格式以及 standardcustom日期和时间类型的格式。还有 Enum values 的选项,您甚至可以创建自己的 custom format provider .

值得一看自定义格式提供程序文档,因为它还会引导您访问 FormattableString类型。文档没有很好地介绍这一点,但我的理解是这种类型理论上可能允许您避免在循环中使用时重新解析每次迭代的内插字符串,从而可能提高性能(尽管实际上,此时没有区别)。我有written about this before ,我的结论是微软需要以更好的方式将其构建到框架中。

关于c# - 字符串插值 C# : Documentation of colon and semicolon functionality,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53872982/

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