C# 3.5框架中的哪些方法具有类似String.Format的签名?

C# 3.5框架中的哪些方法具有类似String.Format的签名?,c#,.net-3.5,string,C#,.net 3.5,String,我只是注意到我可以做到以下几点,这让我大吃一惊: Console.WriteLine("{0}:{1}:{2}", "foo", "bar", "baz"); 这也适用于Write方法。还有哪些方法具有支持此功能的签名,而不需要使用String.Format Debug.WriteLine不…。 HttpResponse.WriteLine不 (顺便说一句,我找不到一个快速的方法来搜索这个。什么是搜索特定签名的好方法?) 编辑: 专门针对3.5框架。StringBuilder实例有一个Appe

我只是注意到我可以做到以下几点,这让我大吃一惊:

Console.WriteLine("{0}:{1}:{2}", "foo", "bar", "baz");
这也适用于
Write
方法。还有哪些方法具有支持此功能的签名,而不需要使用
String.Format

Debug.WriteLine
不…。
HttpResponse.WriteLine

(顺便说一句,我找不到一个快速的方法来搜索这个。什么是搜索特定签名的好方法?)

编辑:


专门针对3.5框架。

StringBuilder实例有一个AppendFormat方法


StringWriter实例有一个写入重载,它接受格式参数。

StringBuilder类有一个名为AppendFormat的方法,其行为方式与此相同。

在整个框架中有许多方法支持此功能。TextWriter的所有子类(以及它们的子类)都将继承支持该方法的方法

另一个经常使用的例子是

您也可以编写自己的方法来支持这一点。您可以通过使用带有格式字符串参数的重载和另一个带有
params
关键字的参数来实现,如下所示:

public void Foo(string message) {
    // whatever
}

public void Foo(string format, params string[] arg) {
    Foo(string.Format(format, arg));
}

重载也可以做到这一点,它被添加到.Net 4.0中。

这似乎仅在.Net Framework 4中受支持。在3.5中不起作用。@OrbMan-很好,在描述中添加了这一点。有很多方法,例如?这就是问题:)@Orbman:对不起!这是真的,但其他人已经提出了大约4个更好的答案,我不想把其他人的答案放到我的帖子里。相反,我试图提出一些新的和相关的信息,这些信息可能对您或这里的其他人有用。:)@Orbman:如果你把“TextWriter”放到Reflector中,你会得到很多匹配项,其中大多数可能都支持这一点。有趣的是,他们是如何使用一个单独的方法名来实现这一点的,我认为,因为否则它会与
(String,Int32,Int32)
签名冲突。我想知道为什么他们没有标准化这种一致性方法,而是使用
Debug.WriteLineFormat
方法。与您的问题没有直接关系,但大多数
ToString()
方法也将接受格式化,并且可以比
String.Format
方法更快。如果能在C#中实现这一点,那就太好了: