[C#] 複合格式字串, .Format .WriteLine 等等~

原出處:微軟

.NET Framework 複合格式功能會採用物件清單和複合格式字串做為輸入。 複合格式字串是由混合索引替代符號 (Placeholder) 的固定文字所組成 (這些符號稱為對應至清單內物件的格式項目)。 格式作業產生的結果字串是由原始固定文字所組成,這些固定文字混合了清單中代表物件的字串。
下列方法支援複合格式功能:

  • String.Format ,傳回格式化的結果字串。
  • StringBuilder.AppendFormat ,將格式化的結果字串附加至 StringBuilder 物件。
  • Console.WriteLine 方法的部分多載,對主控台顯示格式化的結果字串。
  • TextWriter.WriteLine 方法的部分多載,將格式化的結果字串寫入至資料流或檔案。 衍生自 TextWriter 的類別,例如 StreamWriter 和 HtmlTextWriter,也會共用這項功能。
  • Debug.WriteLine(String, Object[]) ,將格式化的訊息輸出至追蹤接聽項。
  • Trace.TraceError(String, Object[]) 、Trace.TraceInformation(String, Object[]) 和 Trace.TraceWarning(String, Object[]) 方法,將格式化的訊息輸出至追蹤接聽項。
  • TraceSource.TraceInformation(String, Object[]) 方法,將告知性方法寫入至追蹤接聽項。

複合格式字串

複合格式字串和物件清單會當做支援複合格式功能之方法的引數來使用。 複合格式字串是由零個或更多段與一個或多個格式項目混合的固定文字所組成, 固定文字是您選擇的任何文字,而每個格式項目都會對應到清單內的一個物件或 boxed 結構。 複合格式功能將會傳回新的結果字串,其中每一個格式項目都會由清單內對應物件的字串表示來取代。
請考量下列 Format 程式碼片段。

string myName = "Fred";
String.Format("Name = {0}, hours = {1:hh}", myName, DateTime.Now);

固定的文字為 “Name = " 和 “, hours = “。 格式項目為 “{0}" (其索引為 0,且會對應至物件 myName) 及 “{1:hh}" (其索引為 1,且會對應至物件 DateTime.Now)。

格式項目語法

每個格式項目都會使用下列格式,並由下列元件所組成:
{ index[,alignment][:formatString]}
成對的大括號 (“{" 和 “}") 是必要的。
-索引元件
強制的 index 元件 (也稱為參數規範) 是用以識別物件清單中對應項目的數字 (從 0 開始)。 也就是說,參數規範為 0 的格式項目會格式化清單中的第一個物件,而參數規範為 1 的格式項目會格式化清單中的第二個物件,依此類推。
多個格式項目可以藉由指定相同參數規範來參考物件清單中的相同項目。 例如,您可以指定複合格式字串 (如:"{0:X} {0:E} {0:N}") 來格式化十六進位、科學格式和數字格式的相同數值。
每個格式項目皆可參考清單內的任何物件。 例如,如果有三個物件,您可以指定複合格式字串 (如:"{1} {0} {2}") 來格式化第二個、第一個和第三個物件。 不是格式項目所參考的物件會被忽略。 如果參數規範指派超出物件清單範圍的項目,即會產生執行階段例外狀況。
-對齊元件
選擇性 alignment 元件為帶正負號的整數 (Signed Integer),它指示慣用的格式化欄位寬度。 如果 alignment 的值小於格式化字串的長度,alignment 會被忽略而使用格式化字串的長度當做欄位寬度。 如果 alignment 為正數,欄位中的格式化資料會靠右對齊;如果 alignment 為負數,則會靠左對齊。 如果填補有必要,則會使用泛空白字元 (White Space)。 如果指定了 alignment,逗號即是必須的。
-格式字串元件
選擇性的 formatString 元件是一個格式字串,適用於將格式化的物件類型。 如果對應的物件為數值,請指定標準或自訂數值格式字串;如果對應的物件為 DateTime 物件,請指定標準或自訂日期和時間格式字串;或者,如果對應的物件為列舉值,請指定列舉格式字串。 如果未指定 formatString,則會使用數值、日期和時間或列舉類型的一般 (“G") 格式規範。 如果指定 formatString,則需要冒號。

Posted in C#

當windows 系統字型大小調整為 125%時 Chrome 37 UI 字也會變大

在 chrome 捷徑內加入以下參數:
–high-dpi-support=1 –force-device-scale-factor=1

原文在此
Text size suddenly got bigger on all sites on Google Chrome.

This reddit thread seems to suggest that this is a Chrome bug. For now, a temporary workaround is to force HiDPI support in Chrome

如果UI字體變了, 可以加入以下參數:
–disable-directwrite-for-ui

原文在此
Font changed in UI when updating Chrome