版本一缺點:動態產生正則表達式,屬性多時效能差;無法區分常數與變數。版本二引入中括號語法區分:
string s2 = p.ToString2("People:Id [Id], Name [Name], Brithday [Brithday]");
單一靜態正則 @"\[(?<Name>[^\]]+)\]" 匹配所有屬性佔位符,效能大幅提升。
string s3 = p.ToString3("People:Id [Id: d4], Name [Name], Brithday [Brithday: yyyy-MM-dd]");
正則擴充捕獲 Format 群組:@"\[(?<Name>[^\[\]:]+)(\s*:\s*(?<Format>[^\[\]:]+))?\]",支援 string.Format 標準格式字串。
| 版本 | 正則 | 格式化 | 效能 |
|---|---|---|---|
| v1 | 動態產生 | 無 | 低 |
| v2 | 靜態簡單 | 無 | 高 |
| v3 | 靜態含格式 | 支援 | 高 |