程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> [c#美味] Guid ToString 格式知多少?,

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

編輯:C#入門知識

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


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

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

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

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

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

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

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

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-9143f9b1e68a
Console.WriteLine(guid.ToString("D"));

// 102447989a344245b1ef9143f9b1e68a
Console.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是不區分大小寫的,如果傳入空字符串,則使用的默認的D類型,其它情況都會報異常。

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

未處理的異常:  System.FormatException: 格式字符串只能是“D”、“d”、“N”、“n ”、“P”、“p”、“B”或“b”。 
   在 System.Guid.ToString(String format, IFormatProvider provider)
該文章轉發微博為: http://www.cnblogs.com/greenerycn/archive/2010/04/25/guid_tostring_format.html(原著)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved