代码之家  ›  专栏  ›  技术社区  ›  D'Arcy Rittich

3.5框架中的哪些方法具有string.format-like签名?

  •  5
  • D'Arcy Rittich  · 技术社区  · 14 年前

    我只是注意到我可以做以下的事情,这对我来说完全是个惊喜:

    Console.WriteLine("{0}:{1}:{2}", "foo", "bar", "baz");
    

    这适用于 Write 方法也是如此。其他哪些方法有支持这一点的签名,而不需要使用 String.Format 是吗?

    Debug.WriteLine 不。。。
    HttpResponse.WriteLine 不。。。

    (在旁注中,我找不到一种快速的方法 Reflector .搜索特定签名的好方法是什么?)

    编辑:

    专门针对3.5框架。

    4 回复  |  直到 14 年前
        1
  •  4
  •   Mark Byers    14 年前

    在整个框架中有许多方法支持这一点。文本编写器的所有子类(因此 StreamWriter StringWriter 及其子类)将继承 Write 方法。

    另一个常用的例子是 StringBuilder.AppendFormat .

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

    public void Foo(string message) {
        // whatever
    }
    
    public void Foo(string format, params string[] arg) {
        Foo(string.Format(format, arg));
    }
    
        2
  •  4
  •   John Hoven    14 年前

    StringBuilder实例具有AppendFormat方法。

    StringWriter实例具有采用格式参数的写入重载。

        3
  •  1
  •   Nick Craver    14 年前

    Debug.WriteLine(string, params Object[] args) 在.NET 4.0中添加重载也可以做到这一点。

        4
  •  0
  •   Nick Allen    14 年前

    StringBuilder类有一个名为AppendFormat的方法,该方法的行为方式相同