2013-07-28 37 views
2

我想知道的東西。而不是編寫String.Format("{0:X}", num);將數字轉換爲十六進制。有沒有一種方法可以直接擴展字符串,以便我可以簡單地編寫num.ToHex();擴展類型定製類

回答

6

您可以創建擴展方法:

public static class IntExtensions 
{ 
    public static string ToHex(this int source) 
    { 
     return string.Format("{0:X}", source); 
    } 
} 

執行這樣的:

string hexNum = 1234.ToHex(); 
+0

如果'num'不是一個字符串? – Ofiris

+0

這可以在任何類型上完成,只需將StringExtensions切換爲FloatExtensions作爲示例? –

+0

Ofiris它快速回答,所以我使用了錯誤的數據類型,但我已經編輯了我的答案。 @ThomasAndreèLian是的,這也可以用於浮動,但是你將不得不改變'ToHex(這個int源)'到'ToHex(這個雙源)'。 – Zbigniew

2

這就是所謂的extension method。但是,應該在數字類型來設置,允許{0:X} string format

public static class Extensions 
{ 
    public static string ToHex(this int source) 
    { 
     return string.Format("{0:X}", source); 
    } 
}