2010-07-24 77 views

回答

4

StringBuilder.AppendFormat String.Format是最接近的。它执行相同的操作,但请注意格式字符串是in a different format

使用String.Format

string buf = string.Format("{0}", frame); 

使用StringBuilder.AppendFormat

StringBuilder builder = new StringBuilder(); 
builder.AppendFormat("{0}", frame); 
0

如果你分配一个字符串,使用String.Format

var newString = String.Format("Number: {0}", 10); 

如果您要追加大量字符串,请使用StringBuilder.AppendFormat。从长远来看,它可以节省您的时间,因为它们可以链接在一起,节省空间。

var result = new StringBuilder().AppendFormat("{0}", 10).AppendFormat("{0}", 11).ToString(); 
0

可能是什么它的准确模拟?

目前还没有确切的模拟,这是因为:在C和C#

  1. 字符串不同的方式实现。在C中,字符串是可变的字符数组,而在.NET中它们是不可变的对象实例。因此,在.NET你不“写入缓冲区”为snprintf做,你只需要创建一个全新的字符串

  2. 在.NET中使用的格式字符串(在String.FormatConsole.WriteLine等)是由C很大的不同(不同的占位符格式)

正如在其他的答案中提到,最接近的等效是String.Format,但它绝对不是一个确切的模拟