C#のConvert.ChangeTypeメソッドの使い方を解説!型変換の基本とサンプルコード
Convert.ChangeTypeメソッドとは
C#のConvert.ChangeType()メソッドは、指定した型のオブジェクトを返すメソッドです。戻り値は、元のオブジェクトと等価な値を持つ、指定された型のオブジェクトになります。
このメソッドは、実行時に動的に型変換を行いたい場合に特に便利です。変換先の型は、TypeCode列挙体またはTypeオブジェクトで指定できます。
基本的な使い方
まず、double型の変数を用意します。
double val = -3.456;
次に、ChangeTypeメソッドを使用して、この値を整数型(Int32)に変換してみましょう。戻り値はobject型であるため、明示的にintへキャストする必要があります。
num = (int)Convert.ChangeType(val, TypeCode.Int32);
サンプルコード
以下に完全なサンプルコードを示します。
using System;
public class Demo {
public static void Main() {
double val = -3.456;
int num = (int)Convert.ChangeType(val, TypeCode.Int32);
Console.WriteLine("{0} converted to an Int32: {1}", val, num);
}
}
実行結果
-3.456 converted to an Int32: -3
出力を見ると、-3.456 が Int32型の -3 に変換されていることがわかります。小数点以下は切り捨てられ、負の数の場合は0に近い方向へ丸められます。
押さえておきたいポイント
Convert.ChangeTypeは、第1引数に変換元のオブジェクト、第2引数に変換先の型(TypeCodeまたはType)を指定します。- 戻り値は
object型のため、実際に使用する際には目的の型へ明示的なキャストが必要です。 - 内部では
IConvertibleインターフェースが利用されるため、変換元の型がIConvertibleを実装している必要があります。 nullを渡した場合、参照型への変換ではnullが返されますが、値型への変換ではInvalidCastExceptionがスローされるので注意しましょう。
-
C#のConvert.ToUInt16メソッドで文字列を16ビット符号なし整数に変換する方法
C#では、Convert.ToUInt16メソッドを使用することで、指定した値を16ビット符号なし整数(ushort型)に変換することができます。 まず、変換対象となる文字列を用意します。 string str = 1129; この文字列を、Convert.ToUInt16メソッドを使って16ビット符号なし整数へ変換してみましょう。 ushort res; res = Convert.ToUInt16(str); 以下に、完全なサンプルプログラムを示します。 サンプルコード using System; public class Demo { public static void Ma
-
C#のConvert.ToInt16メソッドの使い方を解説
C#のConvert.ToInt16メソッドを使うと、指定した値を16ビット符号付き整数(short型)に変換することができます。基本的な使い方まず、double型の変数に値を初期化して代入してみましょう。double doubleNum = 3.456;この値をInt16、つまりshort型に変換します。変換にはConvert.ToInt16メソッドを使用します。short shortNum; shortNum = Convert.ToInt16(doubleNum);小数点以下の値は四捨五入されて整数に変換される点に注意してください。上記の例では3.456が3に変換されます。サンプルコード