2017-06-21 59 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

我試圖刪除這一行,解決方案沒有問題。看起來這條線確實沒有任何目的。 –

相關問題