中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

徹底學(xué)通string.Format以及IFormattable,IFormatProvider,ICustomFormatter

  自從使用.NET以來(lái)就一直都在使用string.Format方法,一直沒(méi)有空或者其他原因都沒(méi)有深入去了解,主要還是因?yàn)轫?xiàng)目上似乎沒(méi)有這么高的要求,也沒(méi)必要去深入了解,就算碰到了自定義的格式化內(nèi)容也是寫(xiě)幾個(gè)通用的方法而已。今天空下來(lái)仔細(xì)去理解了一下,在這里和大家分享一下,也希望大家一起交流。

  string.Format方法是string類提供的靜態(tài)方法,一般最多使用的是其兩個(gè)參數(shù)的重載,例如:

var name = "Zhezhe";
var msg 
= string.Format("Hello Cnblogs, I am {0},Today is {1:yyyy-MM-dd} {2}.", name, DateTime.Now, DateTime.Now.DayOfWeek);
Console.WriteLine(msg);

  3.ToString帶有自定義格式化參數(shù)的理解

  上面講到的ToString都是不帶格式化參數(shù)的,像  {1:yyyy-MM-dd} 這樣的情況是沒(méi)法處理的,也許有人會(huì)說(shuō)像 DateTime.Now.ToString("yyyy-MM-dd") 這樣的情況自己去重載一個(gè)ToString方法就可以了,果真如此嗎? 下面就測(cè)試一下:

public class PersonWithToString
    {
        
public string Name { getset; }

        
public override string ToString()
        {
            
return Name;
        }

        
public string ToString(string format)
        {
            
switch (format)
            {
                
case "UPP":
                    
return Name.ToUpper();
                
case "LOW":
                    
return Name.ToLower();
                
default:
                    
return Name;
            }
        }
    }

  4.繼續(xù)了解 IFormatProvider 和 ICustomFormatter 接口

  到這里為止,應(yīng)該說(shuō)靈活應(yīng)用string.Format()已經(jīng)沒(méi)什么多大的問(wèn)題了,但是也還是存在一些問(wèn)題,比如我們必須得為每個(gè)類單獨(dú)去實(shí)現(xiàn)IFormattable接口才能實(shí)現(xiàn)自定義的格式化參數(shù)。在一些場(chǎng)后還是覺(jué)得不太方便或者說(shuō)代碼冗余。

  .NET的string.Format靜態(tài)方法還提供了重載方法,具體簽名如下:public static string Format(IFormatProvider provider,string format,params Object[] args)

  這個(gè)方法比起原來(lái)使用的方法最前面增加了 IFormatProvider類型參數(shù)。使用此方法的優(yōu)點(diǎn)是不需要為后面的參數(shù)對(duì)象實(shí)現(xiàn) IFormattable  接口就可以使用自定義的格式化參數(shù)。既然這樣的話也就解決了第4部分開(kāi)頭提到的問(wèn)題了。 

  還是用例子說(shuō)話,下面是正方形類

public class Square
{
public string Name { get; set; }

/// <summary>
/// 邊長(zhǎng)
/// </summary>
public double Side { get; set; }

public override string ToString()
{
return string.Format("{0}(Side:{1})",Name, Side);
}
}

NET技術(shù)徹底學(xué)通string.Format以及IFormattable,IFormatProvider,ICustomFormatter,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 黄色国产视频 | 男人天堂网址 | 国产精品1区2区3区 一区中文字幕 | 国产精品免费一区二区三区 | 欧美一级黄视频 | 国产精品久久久久久久久久久久久久 | 国产成人免费视频网站视频社区 | 久久久久久999 | 日韩在线精品 | 神马久久春色视频 | 久久久亚洲 | 国产精品178页 | 精品视频一区二区三区在线观看 | 午夜视频在线视频 | 久久99精品久久久久 | 日本在线视 | 成人夜晚看av | 成人黄色在线视频 | 中文字幕高清 | 乳色吐息在线观看 | 免费一级欧美在线观看视频 | 中国一级特黄视频 | 一级看片免费视频囗交动图 | 91社影院在线观看 | 久久99这里只有精品 | 成人免费视频网站在线看 | 国产一区二区不卡 | 国产资源在线视频 | 成年人黄色小视频 | 久久婷婷香蕉热狠狠综合 | 久久久久久久久久久久久9999 | 99资源站 | 成人在线亚洲 | 九九热在线视频 | 久久久久一区 | 国产一区二区三区在线 | 福利网站导航 | 久久逼逼 | www.久久久久久久久久久久 | 精品成人一区二区 | 成人二区 |