如何在插值字符串中使用格式化,并将格式化选项替换为字符串变量
如何在插值字符串中使用格式化,并将格式化选项替换为字符串变量
嗨,这问题我熟!其实你离正确写法只差一点点啦,就是代码里的语法小问题需要修正~
你的核心需求是把硬编码的:F2格式符换成字符串变量fmt,C#的插值字符串本身就支持这种嵌套的格式变量用法,只是你之前的代码里多了多余的符号。
修正后的正确代码
const int NameAlignment = -9; const int ValueAlignment = 7; double a = 3; double b = 4; string fmt = "F2"; Debug.WriteLine($"Three classical Pythagorean means of {a} and {b}:"); // 原来的常量格式写法(正确) Debug.WriteLine($"|{"Arithmetic",NameAlignment}|{0.5 * (a + b),ValueAlignment:F2}|"); // 替换成变量fmt的正确写法 Debug.WriteLine($"|{"Arithmetic",NameAlignment}|{0.5 * (a + b),ValueAlignment:{fmt}}|");
关键说明
- 你之前的错误是在第二个
Debug.WriteLine里多写了一个$(写成了$$),还多了一个闭合大括号,去掉这些语法错误后,ValueAlignment:{fmt}就能正常工作了。 - 这里的
{fmt}会被插值替换成变量的值"F2",最终效果和直接写:F2完全一致,数值会被格式化为保留两位小数的浮点数。 - 这种方式还支持更复杂的格式化字符串,比如如果你的
fmt是"N3"或者"P1"这类格式符,也能直接套用,非常灵活。
备注:内容来源于stack exchange,提问作者ZedZip
相关产品推荐
相关产品推荐

