2017-02-17 53 views
0

我有一些代碼要維護,並且看到很多使用此字符串格式的跟蹤:ji。例如:C#找不到關於此字符串格式的任何信息:{0:ji}

LogManager.Debug("GetSomething" + "param: {0:ji}", someUserDefinedObject); 

我不記得以前見過這個,我在MSDN上找不到它。有人知道這個格式字符串是幹什麼的?另外:任何鏈接到完整該主題的參考?

非常感謝!

-

注:可能的重複?沒有看到任何。請仔細閱讀這些問題,並確保在尋求重複之前瞭解該主題。如果你找到一個,就關閉這個問題。謝謝。

+0

快速谷歌搜索變成了 「複合格式化」。我從來沒有使用它,所以我不會回答。 http://stackoverflow.com/questions/34940355/what-is-string-format-c-sharp-0-12n0-colon-and-comas和https://msdn.microsoft.com/en-us/library/ txafckwd(v = vs.110).aspx –

+0

如果對象實現['IFormattable'](https://msdn.microsoft.com/en-us/library/system.iformattable(v = vs.110).aspx)那麼「ji」將作爲格式傳遞,所以它取決於'someUserDefinedObject'是什麼。 – juharr

+0

LogManager是第三方類?這種格式可能特定於知道如何解釋它們並根據它輸出最終字符串的庫。 –

回答

3

無論someUserDefinedObject是否執行IFormattable並使用該格式字符串,沒有看到ToString(String, IFormatProvider)方法的代碼,我們不能確切地說明它的作用。但是這裏有一個例子展示了這是如何工作的。定義爲

鑑於類遵循

public class Test : IFormattable 
{ 
    public string ToString(string format, IFormatProvider formatProvider) 
    { 
     return format; 
    } 
} 

那麼下面

Console.WriteLine("{0:hello}", new Test()); 

將打印

你好

+0

非常感謝!這正是你所描述的。 – SRO