2011-10-10 34 views
0

我希望能夠在運行時傳遞格式字符串並使其適用於標稱數據值。c#在運行時傳遞數據格式化字符串

例如,傳入的格式字符串可能看起來像標準的C#格式類型任何東西:

{0:C},{0:d},#,###,###

我希望能夠接受字符串值並在運行時應用格式。一些僞

private string FormatAtRunTime(formatstring) 
{ 
    string formattedOutput = ""; 
    decimal datavalue = 2.4600; 

    datavalue.ToString(formatstring); ?????? 

    return formattedOutput; 
} 
+0

究竟是什麼問題?你嘗試過什麼嗎? –

+0

您遇到什麼問題? –

回答

2

我覺得你只是想:

string formattedOutput = string.Format(formatstring, datavalue); 

事實上,第一個參數是不是字面的字符串(如撥打電話至Format大概是)是無關緊要的。

請注意,調用datavalue.ToString(formatstring)將是罰款,如果formatstring是一個格式說明,例如「c」甚至「0.000」 - 但它不能是複合格式字符串,如您的示例所示。爲此,您需要string.Format

+0

不錯的猜測,但在任何情況下,關於'data.ToString()'和'String.Format()':)的一個很好的解釋 – eFloh