2017-06-21 42 views
2

我遇到过一个项目的代码下面的代码串:为什么要使用只有一个参数的string.Format?

var result = string.Format(source); 

可变“源”是一个字符串

我不明白什么有用的这条线做。正如我一直以为的,我们至少需要两个参数来为string.Format方法提供一些有用的输出。

ReSharper没有强调这是一个多余的东西,所以似乎这条线可能有一些我目前无法理解的目的。 (或者也许ReSharper只是不处理这种情况具体)

为什么要使用string.Format只有一个参数?

+0

该重载未在[MSDN]上列出(https://msdn.microsoft.com/en-us/library/system.string.format%28v=vs.110%29.aspx?f=255&MSPPError= -2147217396)。 –

+2

@Vladislav在'source'包含一个格式序列时引入一个潜在的漏洞。布拉德利,可变数量的参数超载,他们可以从0到N.我也看到了这一点,至少在那种情况下,它是一个孤立的原始代码。 –

+0

@maccettura就我所知,您无法添加静态扩展方法。 –

回答

0

也许重载函数

public static string Format(string format, params object[] args); 

是允许的代码进行编译。我无法想象string.Format(source)会以任何有意义的方式提供帮助。

+0

我试图删除这一行,解决方案没有问题。看起来这条线确实没有任何目的。 –

相关问题