在 C# 中的 String.format 中声明变量

Declare variable inside String.format in c#

我如何在 String.format 中声明一个变量并像 :

一样再次使用它
String.Format("{0} {1}", int t = 1, new string[] { "a", "b" }.ElementAt(t));

更新
我只是想学点新东西,一行敲代码
在这种情况下没有必要,但在其他情况下很有用。

更新
我找到了另一个解决方案:

int indx;
var st = String.Format("{0} {1}", (indx=1), new string[] { "a", "b" }.ElementAt(indx));

如果你能分享你尝试这样做的原因,也许会告诉我们你在做什么,那就太好了。

您的工作代码应如下所示

int t = 1;
string[] myArray = new string[] { "a", "b" };
Console.WriteLine(string.Format("{0} {1}", t, myArray[t]));

你的尝试似乎没有任何意义,首先是行不通的。按照你的方式做事使得无法访问你创建的 tarray,即使它有效,它也与静态字符串相同 string myString = "1 b".你的方式让你无法操纵这些变量,因为它们只会存在于那一行的上下文中,并且每次执行时都会回到它们的初始值。

这是不可能的。将 string.format 视为一种几乎没有重载的方法,它采用 MSDN link 中提到的几组参数。您调用该方法的方式不满足您的意图,因此它会失败。 我不明白为什么你会尝试做这样的事情。