日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁(yè)編程開(kāi)發(fā)C#.NET → C# ToString格式化輸出、ToString重寫等常用技巧總結(jié)

      C# ToString格式化輸出、ToString重寫等常用技巧總結(jié)

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2013/7/17 19:02:24字體大。A-A+

      作者:西西點(diǎn)擊:1941次評(píng)論:0次標(biāo)簽: ToString

      • 類型:音頻處理大。1M語(yǔ)言:中文 評(píng)分:5.1
      • 標(biāo)簽:
      立即下載

      ToString是在開(kāi)發(fā)中最常用的操作,其作用是將其它類型以字符串類型表示。例如:

      int i=2;
      i.ToString() //”2″
      Object o = new Object();
      o.ToString(); // 返回對(duì)象類型 System.Object

      但是ToString也并非就這么簡(jiǎn)單。因?yàn)門oString實(shí)現(xiàn)自O(shè)bject類,而Object類是一切類的基類。其它的類繼承自O(shè)bject,自然也就實(shí)現(xiàn)了ToString方法。但是也可以重寫ToString方法。這也就衍生了其它的使用。如果我們運(yùn)用合理的話,將會(huì)使我們的開(kāi)發(fā)非常的方便。例如在開(kāi)發(fā)中常用到的:

      一.格式化輸出,包含值類型,DateTime,GUID等,ToString()中接受參數(shù),根據(jù)參數(shù)輸出指定格式。
      為實(shí)現(xiàn)格式化輸出,在相關(guān)的類型中,重寫ToString()為

      public string ToString(string format) format 接收的參數(shù),按指定的格式輸出。接受參數(shù),如”C”,”D”,”E”,”等.
      public string ToString(string format,IFormatProvider provider) format 接收的參數(shù),provider 為語(yǔ)言文化 如zh-CN 表示中文,en-US 表示美國(guó)英語(yǔ)

      1.值類型,有時(shí)我們需要將值類型按照格式化輸出,如輸出為貨幣類型,我們只需要在ToString()中指定format為”C”,如果需要輸出美元符號(hào),可以將provider指定為en-US,例如
      float f = 2000.12f;
      f.ToString(“c”, CultureInfo.CreateSpecificCulture(“en-US”)); //輸出為$2,000.12

      值類型中常用的參數(shù)有:

      格式化參數(shù)說(shuō)明
      C貨幣符號(hào)
      D十進(jìn)制表示,后跟數(shù)字表占位符 如25.ToString(“D3”) ; =025
      等價(jià)于 25.ToString(“000”);
      N易讀性數(shù)值表示法 ,用逗號(hào)分隔大型數(shù)值。如
      123456.ToString(“N”);  //123,456
      P百分號(hào)
      X數(shù)值的16進(jìn)制表示,X后跟數(shù)字表示用幾位表示16進(jìn)制。如10.ToString(“X8”); //0000000A
      F指定小數(shù)點(diǎn)位置,四舍五入
      E指數(shù)表示,后跟數(shù)字表示小數(shù)點(diǎn)位數(shù)
      G數(shù)值的一般表示格式,后跟數(shù)字為截取數(shù)值長(zhǎng)度

      我們可以用代碼測(cè)試格式化參數(shù)的使用,如下所示:

      string[] formatTypes = {"C","N","P","F2","E2","G4"};
      double d = 1234.6789;
      foreach(string type in formatTypes)
      {
          Console.WriteLine(string.Format("{0}.ToString(\"{1}\")={2}",d,type,d.ToString(type)));
      }

      測(cè)試輸出

      2.DateTime,格式化參數(shù)主要用于日期時(shí)間的格式化輸出。DateTime.Now的默認(rèn)格式為G。參數(shù)有一部分區(qū)分大小寫。如下所示

      使用的代碼

      string[] dateTimeTypes = { "d", "D", "f", "F", "g", "G", "m","M", "o", "O",
                          "R","r", "s", "t", "T", "u", "U", "y","Y" };
      foreach(string type in dateTimeTypes)
      {
           Console.WriteLine(string.Format("{0}:{1}", type.PadLeft(2,' '),DateTime.Now.ToString(type, CultureInfo.CreateSpecificCulture("zh-CN"))));       //設(shè)置中國(guó)的日期格式
      }

      測(cè)試輸出:

      3.GUID,GUID為在開(kāi)發(fā)過(guò)程中常用來(lái)代表唯一標(biāo)示。在GUID 類型中,格式化參數(shù)主要有:

      string[] guidTypes={"N","D","B","P","X"};
      foreach(string type in guidTypes)
      {
          Console.WriteLine(string.Format("{0}",Guid.NewGuid().ToString(type).PadLeft(2,' ')));
      }

      輸出結(jié)果:

      二.ToString的重寫,C#中的任何對(duì)象都繼承了ToString()方法。在自定義類中如果需要重寫ToString()方法,只需要在類中加入:
      public override string ToString(){}

      而支持格式化參數(shù)的ToString()需要繼承IFormattable接口,并實(shí)現(xiàn)
      public string ToString(string format,IFormatProvider provider)方法

      下面以People,Peoples類說(shuō)明如何重寫ToString()。本例只是說(shuō)明ToString()的用法,所以并沒(méi)有與數(shù)據(jù)庫(kù)交互。

      class People
      {
          public People(string name,string address)
          {
              this.Name = name;
              this.Address = address;
          }
          public string Name { set; get; }
          public string Address { set; get; }
      }
      
      class Peoples:IEnumerable,IFormattable
      {
          private List<People> _peoples;
          private StringBuilder _sb;
          public Peoples()
          {
              _peoples = new List<People>();
          }
          public void Add(People people)
          {
              _peoples.Add(people);
          }
          public IEnumerator GetEnumerator()
          {
              foreach(People p in _peoples)
              {
                  yield return p;
              }
          }
          //重寫ToString()
          public override string ToString()
          {
      
              return GetContent(_peoples);
          }
          //重寫帶參ToString()
          public string ToString(string format)
          {
              return ToString(format, CultureInfo.CreateSpecificCulture("zh-CN"));
          }
          //重寫帶參ToString()
          public string ToString(string format, IFormatProvider provider)
          {
              IEnumerable<People> ps = _peoples;
              if (format.ToUpperInvariant() == "B")
              {
                  ps = from p in _peoples where p.Address == "北京" select p;
              }
              else if (format.ToUpperInvariant() == "S")
              {
                  ps = from p in _peoples where p.Address == "上海" select p;
              }
              return GetContent(ps);
          }
          private string GetContent(IEnumerable<People> peoples)
          {
              _sb = new StringBuilder();
              foreach(People p in peoples)
              {
                  _sb.AppendLine(string.Format("{0}:{1}", p.Name, p.Address));
              }
              return _sb.ToString();
          }
      }
      static void Main(string[] args)
      {
          Peoples peoples = new Peoples(){new People("zhangsan","北京"),new People("lisi","上海"),new People("wangwu","北京"),new People("naliu","北京")};
          Console.WriteLine("本站會(huì)員有:");
          Console.WriteLine(peoples.ToString());
          Console.WriteLine("北京的會(huì)員有:");
          Console.WriteLine(peoples.ToString("B"));
          Console.WriteLine("上海的會(huì)員有:");
          Console.WriteLine(peoples.ToString("S"));
          Console.ReadLine();
      }

      輸出結(jié)果:

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過(guò)難過(guò)
        • 5 囧
        • 3 圍觀圍觀
        • 2 無(wú)聊無(wú)聊

        熱門評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)