C#で値型DecimalのTypeCodeを取得する方法
C#において、値型 Decimal の TypeCode を取得するには、GetTypeCode() メソッドを使用します。このメソッドは IConvertible インターフェースで定義されており、呼び出し元のインスタンスに対応する TypeCode 列挙体の値を返します。
この記事では、具体的なコード例を使いながら、Decimal 型の TypeCode を取得する方法をわかりやすく解説します。
例1:Decimal.MaxValue を使用した場合
まず、Decimal.MaxValue(Decimal 型が表現できる最大値)を使用した例を見てみましょう。
using System;
public class Demo {
public static void Main(){
Decimal val = Decimal.MaxValue;
Console.WriteLine("Decimal Value = {0}", val);
Console.WriteLine("HashCode = {0}", (val.GetHashCode()) );
TypeCode type = val.GetTypeCode();
Console.WriteLine("TypeCode = "+type);
}
}実行結果
上記のコードを実行すると、次のような出力が得られます。
Decimal Value = 79228162514264337593543950335 HashCode = 1173356544 TypeCode = Decimal
例2:小数値を持つDecimalの場合
続いて、小数点以下の値を持つ Decimal のインスタンスに対して、同じ処理を行ってみましょう。
using System;
public class Demo {
public static void Main(){
Decimal val = 3972.491M;
Console.WriteLine("Decimal Value = {0}", val);
Console.WriteLine("HashCode = {0}", (val.GetHashCode()) );
TypeCode type = val.GetTypeCode();
Console.WriteLine("TypeCode = "+type);
}
}実行結果
こちらも同様に、TypeCode として「Decimal」が出力されます。
Decimal Value = 3972.491 HashCode = 620041307 TypeCode = Decimal
ポイント解説
- GetTypeCode() メソッド: すべての .NET の基本データ型で利用でき、その型に対応する
TypeCode列挙体のメンバーを返します。 - TypeCode.Decimal: Decimal 型の場合は必ず
TypeCode.Decimalが返されます。これは、値が最大値でも小数でも変わりません。 - GetHashCode() メソッド: インスタンスのハッシュコードを取得するメソッドです。値によって異なる数値が返されますが、同一の値からは常に同じハッシュコードが生成されます。
このように、GetTypeCode() を使えば、Decimal 型の TypeCode を簡単に確認できます。リフレクションや型判定のロジックを実装する際に役立つので、ぜひ活用してみてください。
-
C#で値型CharのTypeCodeを取得する方法
C#において、値型CharのTypeCodeを取得するには、GetTypeCode()メソッドを使用します。このメソッドはTypeCode列挙型の値を返し、char型の場合は「Char」が返されます。以下に具体的なサンプルコードを示します。 例1 using System; public class Demo { public static void Main() { char val = '5'; bool res; Cons
-
C#のdecimal型(10進数型)とは?四則演算の基本をサンプルコードで解説
C#におけるdecimal型(10進数型)は、値型(value type)に分類されるデータ型で、金額計算など高い精度が求められる場面でよく使われます。decimal型には、加算(+)、減算(-)、乗算(*)、除算(/)といった算術演算子が用意されており、通常の数値型と同じように演算を行うことができます。decimal型の変数を宣言するまず、2つのdecimal型の値を宣言してみましょう。decimal型のリテラルを代入する際は、数値の末尾に M または m サフィックスを付ける必要があります。decimal d1 = 5.8M; decimal d2 = 3.2M;decimal型同士の加算