C#のObject.GetType()メソッドをサンプルコード付きで解説
C#のObject.GetType()メソッドは、現在のインスタンスの正確なランタイム型(Typeオブジェクト)を取得するために使用されます。このメソッドはすべての型が継承するObjectクラスで定義されているため、あらゆるオブジェクトから呼び出すことができます。
構文
GetType()メソッドの構文は以下のとおりです。
public Type GetType ();
引数は受け取らず、戻り値として現在のインスタンスの型を表すTypeオブジェクトを返します。
使用例1:Object型とString型の型情報を取得する
次の例では、Object型のインスタンスとString型の変数に対してGetType()メソッドを呼び出し、それぞれの型情報とハッシュコードを表示しています。
using System;
public class Demo {
public static void Main() {
Object ob = new Object();
String str = "Jim";
Type type1 = ob.GetType();
Type type2 = str.GetType();
Console.WriteLine("Type = "+type1);
Console.WriteLine("Type = "+type2);
Console.WriteLine("\nHash Code = "+type1.GetHashCode());
Console.WriteLine("Hash Code = "+type2.GetHashCode());
}
}出力
Type = System.Object Type = System.String Hash Code = 30015890 Hash Code = 21083178
このように、GetType()メソッドは呼び出し元の実際の型(System.ObjectやSystem.Stringなど)を返します。なお、表示されるハッシュコードの値は実行環境やセッションによって異なる場合があります。
使用例2:独自定義の構造体でGetType()を使う
次の例では、独自に定義したValue構造体に対してGetHashCode()メソッドをオーバーライドし、さらにGetType()メソッドでその型名を取得しています。
using System;
public struct Value {
private int v1;
private int v2;
private int v3;
public Value(int v1, int v2, int v3) {
this.v1 = v1;
this.v2 = v2;
this.v3 = v3;
}
public override int GetHashCode() {
return Tuple.Create(v1, v2, v3).GetHashCode();
}
}
public class Demo {
public static void Main() {
Value v = new Value(1, 7, 12);
Console.WriteLine(v.GetHashCode());
Console.WriteLine(v.GetType());
v = new Value(12, 8, 7);
Console.WriteLine(v.GetHashCode());
v = new Value(8, 7, 12);
Console.WriteLine(v.GetHashCode());
}
}出力
1258 Value 12803 8931
出力の2行目にある「Value」は、GetType()メソッドによって返された構造体の型名です。このように、ユーザー定義のクラスや構造体に対してもGetType()メソッドを利用すれば、実行時の型情報を簡単に確認できます。
-
C#のMathF.Asinh()メソッドとは?使い方とサンプルコードをわかりやすく解説
C#のMathF.Asinh()メソッドは、float型(単精度浮動小数点数)の値に対して、逆双曲線正弦(アークハイパボリックサイン)を計算して返すためのメソッドです。双曲線関数を扱う数学的な処理や、科学技術計算などで活用されます。なお、MathFクラスは.NET Core以降で利用可能なクラスであり、float型に特化した数学メソッドを提供しています。double型を扱う場合は、従来のMath.Asinh()メソッドを使用します。構文MathF.Asinh()メソッドの構文は以下のとおりです。public static float Asinh (float val);引数には逆双曲線正弦を求
-
C#のMathF.Acosh()メソッドとは?使い方をサンプルコード付きで解説
C#のMathF.Acosh()メソッドは、指定されたfloat型(単精度浮動小数点数)の値に対する逆双曲線余弦(アークハイパボリックコサイン)を計算して返すメソッドです。構文MathF.Acosh()メソッドの基本的な構文は以下の通りです。public static float Acosh (float val);引数valには、逆双曲線余弦を求めたい浮動小数点数を指定します。戻り値もfloat型で返されます。注意点:1未満の値を指定した場合逆双曲線余弦は数学的に定義域が1以上の値となるため、1未満の値を渡すとNaN(Not a Number)が返されます。サンプルコード1まず、1未満の値を