C# 型変換(キャスト)
型変換のサンプルです。
string型→数値型、真偽型
string型からプリミティブ型への型変換サンプルです。
- 例)
-
int a = int.Parse("123"); // int型へ long a = long.Parse("123"); // long型へ float a = float.Parse("123.45"); // float型へ double a = double.Parse("123.45"); // double型へ bool b = bool.Parse("true"); // bool型へ
数値型、真偽型→string型
プリミティブ型からstring型への型変換サンプルです。
- 例)
-
// int型から int i = 123; string = i.ToString(); // long型から long l = 123; string a = l.ToString(); // float型から float f = 123.45; string a = f.ToString(); // double型から double d = 123.45; string a = d.ToString(); // bool型から bool b = false; string a = b.ToString();
日付文字列→DateTime型
- 例)string型 "2014/12/30 16:23:12" をDateTime型に変換する
-
DateTime dt = DateTime.ParseExact("2014/12/30 16:23:12", "yyyy/MM/dd HH:mm:ss", null);
DateTime型→string型
- 例)DateTime型変数(dt) をstring型(yyyy/MM/dd HH:mm:ss)に変換する
-
string str = dt.ToString("yyyy/MM/dd HH:mm:ss");
特定の型を指定して型変換する
- 例)変数 obj をHoge型に変換する
-
Hoge hg = (Hoge)obj;
※型変換できない場合は例外が発生します。
型変換できるかチェックする
想定外の型が予想される場合は、型のチェックをしてから型変換をするのがベストです。
- 例)
-
// int型にキャストできるかどうかチェックする int aa; string str = "123"; bool b = int.TryParse(str, out aa); // DateTime型にキャストできるかどうかチェックする DateTime aa; string str = "2014/11/3"; bool b = DateTime.TryParse(str, out aa); // 変数objがSample型かどうかを判定してから型変換する(方法1) if (obj.GetType() == typeof(Sample)) { Sample s = (Sample)obj; } // 変数objがSample型かどうかを判定してから型変換する(方法2) if (obj is Sample) { Sample s = (Sample)obj; }