[c#美味] Guid ToString 格式知多少?

來源:互聯網
上載者:User

在日常編程中,Guid是比較常用的,最常見的使用就是如下所示:

string id = Guid.NewGuid().ToString();

這條語句會產生一個新的Guid並轉成字串,如下:

// 10244798-9a34-4245-b1ef-9143f9b1e68a

但是還有一些情況下,我們會有一些細節上的差異,如:

  • 前後有大括弧{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
  • 中間沒有連字號 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • 前後是圓括弧(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

遇到這種情況就比較麻煩了,最常見的一種就是自己把guid產生的字串解析處理,比如加括弧,或者把連字號用Null 字元替換掉等:

var str = guid.ToString();var id = "{" + str + "}";var id2 = str.Replace("-", "");var id3 = "(" + str + ")";

 

其實不用這麼麻煩的,在ToString的時候,有一個重載的函數:

ToString(String)

通過傳入格式化字串,就可以輸出這種類型的guid 字串了。

樣本如下:

var guid = Guid.NewGuid();// 10244798-9a34-4245-b1ef-9143f9b1e68aConsole.WriteLine(guid.ToString("D"));// 102447989a344245b1ef9143f9b1e68aConsole.WriteLine(guid.ToString("N"));// {10244798-9a34-4245-b1ef-9143f9b1e68a}Console.WriteLine(guid.ToString("B"));// (10244798-9a34-4245-b1ef-9143f9b1e68a)Console.WriteLine(guid.ToString("P"));

 

注意:這裡的D,N,B,P是不區分大小寫,如果傳入Null 字元串,則使用的預設的D類型,其它情況都會報異常。

在MSDN中查詢到還有一種“X”類型,但是我在.NetFx 3.5下,使用時會彈出異常:

未處理的異常:  System.FormatException: 格式字串只能是“D”、“d”、“N”、“n ”、“P”、“p”、“B”或“b”。

   在 System.Guid.ToString(String format, IFormatProvider provider)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.