【C#入門】ToStringで数値や日付を文字列に変換する方法

ToStringメソッドって使ってますか?

ToStringメソッドを使うと数値や日付を指定した書式で文字列に変換することができます。

この記事では、ToStringメソッドについて

・ToStringメソッドとは
・数値を文字列に変換する方法
・日付を文字列に変換する方法

という基本的な内容から、

・ToStringをオーバーライドする方法

など応用的な内容についても解説していきます。

今回はToStringメソッドについて、使い方をわかりやすく解説します!

目次

ToStringメソッドとは

ToStringメソッドは変数やオブジェクトを文字列に変換するときに使います。

ToStringメソッドの引数には文字列に変換するときの書式を指定します。

書式の指定については、こちらで詳しく解説していますので、ぜひ参考にしてください。

数値を文字列に変換する方法

それでは数値を文字列に変換する方法についてサンプルコードでみていきましょう。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      double num = 12.3456;
      Console.WriteLine(num.ToString("#.##"));
      
      Console.ReadKey();
    }
  }
}

実行結果:

12.35

このサンプルコードでは、ToStringメソッドを使ってdouble型変数numを文字列に変換しています。

ToStringメソッドの引数では、小数点第2位までで四捨五入されるように書式を指定しています。

日付を文字列に変換する方法

ToStringメソッドでDateTime(日付)型のオブジェクトを文字列に変換することもできます。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      DateTime dt = new DateTime(2018, 2, 1);
      Console.WriteLine(dt.ToString("yyyy/MM/dd"));
      
      Console.ReadKey();
    }
  }
}

実行結果:

2018/02/01

このサンプルコードでは、ToStringメソッドを使ってDateTime型オブジェクトdtを文字列に変換しています。

ToStringメソッドの引数では、日時の書式を指定しています。

ToStringをオーバーライドする方法

これまではToStringメソッドを使って数値や日付を文字列に変換してきました。

このToStringメソッドは自作したクラスでオーバーライドして使うこともできます。

オーバーライドとはメソッドの名称、引数、戻り値はそのままで、処理の内容を再定義することです。

サンプルコードで確認しましょう。

using System;

namespace Sample
{
 class test 
 {
   private double num;
   
   public test(double num) {
     this.num = num;
   }
   
   public override string ToString() {
     return String.Format("numは{0:#.##}です", this.num);
   }
 }
 
  class Sample
  {
    static void Main()
    {
      test t = new test(12.3456);
      Console.WriteLine(t.ToString());
      
      Console.ReadKey();
    }
  }
}

実行結果:

numは12.35です

このサンプルコードでは、testクラスを作成しToStringメソッドをオーバーライドしています。

このようにToStringメソッドはカスタマイズすることもできます。

まとめ

ここでは、ToStringメソッドについて説明しました。

ToStringメソッドは書式を指定して数値や日付データを文字列に変換することができます。

また、自作のクラスでオーバーライドすることで文字列への変換をカスタマイズすることもできます。

使いこなすことができるように、この記事を何度も参考にして下さいね!

この記事を書いた人

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
info@sss-lab.com

目次