我们应该在 C# 中使用 String.format 还是 String.replace?
Should we use String.format or String.replace in C#?
我们正在尝试创建一个显示用户消息的应用程序。
以下是一些示例消息:
- "You have an offer for {PlayerName} from {Offerclub}. They would pay {Offer}".
- “{Offerclub} 想以 {Offer} 的价格购买 {Playername}”。
我们正在从数据库中获取这些字符串。
(我们的第一个尝试是制作一个 class,具有不同的功能,返回给我们字符串。我们使用字符串插值。然后我们意识到这不是一个好的选择,因为用户无法创建 contents/strings 并且我们每次在这个 class 中创建更多字符串时都必须更新我们的应用程序。)
我们知道的选项:
String.format:类似的东西:
string result = string.Format("{1} blalbal...- {2}blabla... {3}", value1, value2, value3);
这里的问题:我们想像在我们的示例中一样使用具有不同输入位置的字符串。有时第一个是球员名,有时是俱乐部名...
- String.replace:我们考虑了固定的占位符名称,然后使用替换来进行更改。
- String Builder:我们想简单地连接我们的字符串。我们首先从数据库中读取它们并使用 String.split 创建一个字符串数组。
问题:
- 有更好的选择吗? (我们正在谈论一些消息。在最坏的情况下可能有几百条消息)我们更愿意使用 String.replace 因为这听起来是最简单的解决方案。
可以简单的把字符串格式存入数据库,变量的顺序不需要保持一致?
SQL 数据库
"You have an offer for {0} from {1}. They would pay {2}."
"{1} would like to buy {0} for {2}."
如果你愿意,你甚至可以省略参数。
"{1} would like to buy {0}, they would like to discuss pricing."
c#
string format = GetStringFromDatabase(someIdentifier);
string message = String.Format(format, PlayerName, Offerclub, Offer);
有一种更好更简单的方法来制作这些字符串。您可以尝试使用此示例:
string result = $"{value1} blalbal...- {value2}blabla... {value3}";
这个“$”符号允许您直接插入变量。
我们正在尝试创建一个显示用户消息的应用程序。 以下是一些示例消息:
- "You have an offer for {PlayerName} from {Offerclub}. They would pay {Offer}".
- “{Offerclub} 想以 {Offer} 的价格购买 {Playername}”。
我们正在从数据库中获取这些字符串。 (我们的第一个尝试是制作一个 class,具有不同的功能,返回给我们字符串。我们使用字符串插值。然后我们意识到这不是一个好的选择,因为用户无法创建 contents/strings 并且我们每次在这个 class 中创建更多字符串时都必须更新我们的应用程序。)
我们知道的选项:
String.format:类似的东西:
string result = string.Format("{1} blalbal...- {2}blabla... {3}", value1, value2, value3);
这里的问题:我们想像在我们的示例中一样使用具有不同输入位置的字符串。有时第一个是球员名,有时是俱乐部名...
- String.replace:我们考虑了固定的占位符名称,然后使用替换来进行更改。
- String Builder:我们想简单地连接我们的字符串。我们首先从数据库中读取它们并使用 String.split 创建一个字符串数组。
问题:
- 有更好的选择吗? (我们正在谈论一些消息。在最坏的情况下可能有几百条消息)我们更愿意使用 String.replace 因为这听起来是最简单的解决方案。
可以简单的把字符串格式存入数据库,变量的顺序不需要保持一致?
SQL 数据库
"You have an offer for {0} from {1}. They would pay {2}."
"{1} would like to buy {0} for {2}."
如果你愿意,你甚至可以省略参数。
"{1} would like to buy {0}, they would like to discuss pricing."
c#
string format = GetStringFromDatabase(someIdentifier);
string message = String.Format(format, PlayerName, Offerclub, Offer);
有一种更好更简单的方法来制作这些字符串。您可以尝试使用此示例:
string result = $"{value1} blalbal...- {value2}blabla... {value3}";
这个“$”符号允许您直接插入变量。