C#の型変換:暗黙的・明示的キャストを徹底解説
型変換とは、あるデータ型を別のデータ型に変換することです。これは型キャストとも呼ばれます。C#では、型キャストには主に2つの形式があります。
- 暗黙的型変換 - C#が型安全な方法で自動的に実行する変換です。例えば、より小さい整数型から大きい整数型への変換、派生クラスから基底クラスへの変換などが該当します。
- 明示的型変換 - ユーザーが定義済みの関数やキャスト演算子を使用して明示的に行う変換です。明示的な変換にはキャスト演算子が必要です。
明示的型変換の例
次の例は、double型からint型への明示的なキャストを示しています。
using System;
namespace TypeConversionApplication {
class ExplicitConversion {
static void Main(string[] args) {
double d = 5673.74;
int i;
// doubleをintにキャスト
i = (int)d;
Console.WriteLine(i);
Console.ReadKey();
}
}
}
上記のコードをコンパイルして実行すると、以下の結果が得られます。
5673
C#の型変換メソッド
C#には、以下の組み込み型変換メソッドが用意されています。
| No. | メソッドと説明 |
|---|---|
| 1 | ToBoolean 可能な場合、型をブール値に変換します。 |
| 2 | ToByte 型をバイト型に変換します。 |
| 3 | ToChar 可能な場合、型を単一のUnicode文字に変換します。 |
| 4 | ToDateTime 型(整数型や文字列型)を日時構造体に変換します。 |
| 5 | ToDecimal 浮動小数点型または整数型を10進数型に変換します。 |
| 6 | ToDouble 型をdouble型に変換します。 |
| 7 | ToInt16 型を16ビット整数に変換します。 |
| 8 | ToInt32 型を32ビット整数に変換します。 |
| 9 | ToInt64 型を64ビット整数に変換します。 |
| 10 | ToSByte 型を符号付きバイト型に変換します。 |
| 11 | ToSingle 型を単精度浮動小数点数に変換します。 |
| 12 | ToString 型を文字列に変換します。 |
| 13 | ToType 型を指定された型に変換します。 |
| 14 | ToUInt16 型を符号なし16ビット整数に変換します。 |
| 15 | ToUInt32 型を符号なし32ビット整数に変換します。 |
| 16 | ToUInt64 型を符号なし64ビット整数に変換します。 |
各種値型を文字列型に変換する例
using System;
namespace TypeConversionApplication {
class StringConversion {
static void Main(string[] args) {
int i = 75;
float f = 53.005f;
double d = 2345.7652;
bool b = true;
Console.WriteLine(i.ToString());
Console.WriteLine(f.ToString());
Console.WriteLine(d.ToString());
Console.WriteLine(b.ToString());
Console.ReadKey();
}
}
}
実行結果:
75
53.005
2345.7652
True
重要なポイント
- 暗黙的変換はデータ損失のない安全な変換のみで発生します
- 明示的変換(キャスト)はデータ損失の可能性がある場合に必要です
Convertクラスのメソッドは、文字列から数値型への変換など、より複雑な変換に適しています- オーバーフローの可能性がある場合は
checked/uncheckedコンテキストを検討してください
C言語
- ASTM A1018 グレード CS タイプB 低炭素鋼の仕様と特性
- ASTM A424 グレード タイプII 鋼の仕様と性能
- ASTM A424 グレード タイプI 鋼の主要特性と性能
- ASTM A792 CSタイプA鋼 — 詳細特性と仕様
- ASTM A53 Grade A Type E 配管 - 仕様と主要特性
- ASTM A53 Grade A Type S 配管 - シームレス管の仕様と主要特性
- C#型変換完全ガイド:暗黙・明示的変換、Parse、Convertクラス
- Python 型変換とキャスト: 包括的ガイド
- Pythonにおける数値、型変換、数学のマスター
- Java型キャスト完全ガイド:拡大変換から縮小変換まで
- Javaジェネリクス完全解説: 型安全性・汎用メソッド/クラス・境界型パラメータの活用