我们应该在 C# 中使用 String.format 还是 String.replace?

Should we use String.format or String.replace in C#?

我们正在尝试创建一个显示用户消息的应用程序。 以下是一些示例消息:

我们正在从数据库中获取这些字符串。 (我们的第一个尝试是制作一个 class,具有不同的功能,返回给我们字符串。我们使用字符串插值。然后我们意识到这不是一个好的选择,因为用户无法创建 contents/strings 并且我们每次在这个 class 中创建更多字符串时都必须更新我们的应用程序。)

我们知道的选项:

  1. String.format:类似的东西:

    string result = string.Format("{1} blalbal...- {2}blabla... {3}", value1, value2, value3);

这里的问题:我们想像在我们的示例中一样使用具有不同输入位置的字符串。有时第一个是球员名,有时是俱乐部名...

  1. String.replace:我们考虑了固定的占位符名称,然后使用替换来进行更改。
  2. String Builder:我们想简单地连接我们的字符串。我们首先从数据库中读取它们并使用 String.split 创建一个字符串数组。

问题:

可以简单的把字符串格式存入数据库,变量的顺序不需要保持一致?

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}";

这个“$”符号允许您直接插入变量。