使用String.Format时,有一种简单的方法可以在字符串值周围添加括号(如果它不为null或为空)

Ric*_*ter 7 c# string formatting

我试图隔离(出于本地化目的)某些消息的格式.在其中一种情况下,我有几个参数,其中一些可能是一个空字符串.这里可能需要一个例子....

如果参数是参数1参数2,那么我希望结果是某些消息参数1(参数2).

如果参数是参数1string.Empty,那么我希望结果是某些消息参数1

如果参数2是一个数值,那么我可以使用类似的东西:

String.Format("Test {0}{1:' ('#')'}", "Parameter one", 12);

这正如我所期望的那样运行 - 特别是如果第二个参数为null,则输出只是测试参数1.

不幸的是,我还没有找到一个类似于字符串参数的选项.有吗?

澄清:我完全了解在代码中获得所需结果的多种方法.我特别想知道是否有一个类似于上面显示的数字字符串的内置机制.

Chr*_*sic 4

您始终可以尝试通过实现来编写自己的自定义字符串格式化程序IFormatProvider and ICustomFormatter

然后将其调用为

var stringValue = string.Format(new NewCustomStringFormatInfo(),
     "Test {0}{1:' ('#')'}", "Parameter one", 12)
Run Code Online (Sandbox Code Playgroud)