2011-12-16 50 views
3

我最近看到一篇文章,詢問是否有方法更改字符串,使其以大寫字母開頭並且小寫後面。這裏看起來是最好的解決方案:如何將ToTitle函數更改爲字符串擴展?

public static class StringHelper {  
    public static string ToTitleCase(string text)  { 
     return StringHelper.ToTitleCase(text, CultureInfo.InvariantCulture);  
    }   
    public static string ToTitleCase(string text, CultureInfo cultureInfo)  {   
     if (string.IsNullOrEmpty(text)) return string.Empty;    
     TextInfo textInfo = cultureInfo.TextInfo;   
     return textInfo.ToTitleCase(text.ToLower());  
    } 
} 

我想將這些轉換爲字符串擴展。有人可以建議我怎麼做到這一點?

+1

你應該使用的CurrentCulture而不是InvariantCulture的時候沒有指定文化 – 2011-12-16 09:25:50

回答

7

使用this關鍵字在第一個參數的前面:

public static class StringHelper 
{  
    public static string ToTitleCase(this string text) 
    { 
     return StringHelper.ToTitleCase(text, CultureInfo.InvariantCulture);  
    }   

    public static string ToTitleCase(this string text, CultureInfo cultureInfo) 
    {   
     if (string.IsNullOrEmpty(text)) return string.Empty;    
     TextInfo textInfo = cultureInfo.TextInfo;   
     return textInfo.ToTitleCase(text.ToLower());  
    } 
} 

How to: Implement and Call a Custom Extension Method (C# Programming Guide) MSDN上。

+0

+1,包括解決方案和導向 – 2011-12-16 09:29:02

3
public static class StringHelper {  
    public static string ToTitleCase(**this** string text)  { 
     return StringHelper.ToTitleCase(text, CultureInfo.InvariantCulture);  
    }   
    public static string ToTitleCase(**this** string text, CultureInfo cultureInfo)  {   
     if (string.IsNullOrEmpty(text)) return string.Empty;    
     TextInfo textInfo = cultureInfo.TextInfo;   
     return textInfo.ToTitleCase(text.ToLower());  
    } 
} 
2

改變方法簽名:

public static string ToTitleCase(this string text) { ... 
相關問題