C#で値型Int16(short)のTypeCodeを取得する方法
C#において、値型 Int16(short)のTypeCodeを取得するには、GetTypeCode() メソッドを使用します。このメソッドは System 名前空間に属しており、インスタンスの基となる型の種類を TypeCode 列挙体として返します。
TypeCode は、オブジェクトの型を識別するための列挙型で、Int16の場合は TypeCode.Int16 が返されます。数値の範囲チェックや動的な型判定を行う際に役立ちます。
例1:0とInt16.MaxValueの場合
以下のコードでは、short 型の変数に対して値の表示、ハッシュコードの取得、等価比較、そしてTypeCodeの取得を行っています。
using System;
public class Demo {
public static void Main() {
short val1 = 0;
short val2 = Int16.MaxValue;
Console.WriteLine("Value1 = "+val1);
Console.WriteLine("Value2 = "+val2);
Console.WriteLine("HashCode for value1 = "+val1.GetHashCode());
Console.WriteLine("HashCode for value2 = "+val2.GetHashCode());
Console.WriteLine("Are they equal? = "+(val1.Equals(val2)));
TypeCode type1 = val1.GetTypeCode();
TypeCode type2 = val2.GetTypeCode();
Console.WriteLine("TypeCode for val1 = "+type1);
Console.WriteLine("TypeCode for val2 = "+type2);
}
}
出力結果
このプログラムを実行すると、次のような出力が得られます。
Value1 = 0 Value2 = 32767 HashCode for value1 = 0 HashCode for value2 = 2147450879 Are they equal? = False TypeCode for val1 = Int16 TypeCode for val2 = Int16
このように、値が 0 であっても Int16.MaxValue(32767)であっても、どちらも同じく TypeCode.Int16 が返されることが確認できます。
例2:任意の値の場合
続いて、別のサンプルコードを見てみましょう。
using System;
public class Demo {
public static void Main() {
short val1 = 23;
short val2 = 0;
Console.WriteLine("Value1 = "+val1);
Console.WriteLine("Value2 = "+val2);
Console.WriteLine("HashCode for value1 = "+val1.GetHashCode());
Console.WriteLine("HashCode for value2 = "+val2.GetHashCode());
Console.WriteLine("Are they equal? = "+(val1.Equals(val2)));
TypeCode type1 = val1.GetTypeCode();
TypeCode type2 = val2.GetTypeCode();
Console.WriteLine("TypeCode for val1 = "+type1);
Console.WriteLine("TypeCode for val2 = "+type2);
}
}
出力結果
実行すると、以下の出力が得られます。
Value1 = 23 Value2 = 0 HashCode for value1 = 1507351 HashCode for value2 = 0 Are they equal? = False TypeCode for val1 = Int16 TypeCode for val2 = Int16
ポイントまとめ
GetTypeCode()メソッドは、値が何であれその変数の型に対応するTypeCodeを返します。short(Int16)型に対しては常にTypeCode.Int16が返されます。GetHashCode()の戻り値は値によって異なりますが、TypeCodeは型のみに依存するため一定です。Equals()メソッドによる比較は値の一致を判定するため、異なる値同士ではFalseとなります。
-
C#でInt64インスタンスのハッシュコードを取得する方法
C#の Int64.GetHashCode() メソッドを使うと、現在のInt64(long型)インスタンスに対応するハッシュコードを取得できます。このメソッドは、ハッシュテーブルなどのデータ構造で値を効率的に管理する際に利用されます。GetHashCode()メソッドの基本GetHashCode()は、オブジェクトの値をもとに計算された32ビット整数のハッシュコードを返します。同じ値を持つInt64インスタンスは必ず同じハッシュコードを返しますが、異なる値が同じハッシュコードになる場合もあります(ハッシュの衝突)。サンプルコード1以下の例では、2つのlong型の値に対してハッシュコードを取得
-
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