カテゴリ: C# 更新日: 2025/09/23

C#で型を調べる方法!GetType()・typeof演算子の違いと使い方

C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方

先生と生徒の会話形式で理解しよう

生徒

「先生、C#で変数の型を調べることってできますか?」

先生

「はい、できますよ。C#では、GetType()メソッドやtypeof演算子を使って型を調べることができます。」

生徒

「えっ、どっちも同じじゃないんですか?どう使い分けるんですか?」

先生

「それはとても良い疑問ですね。これから、両方の違いと使い方をしっかり説明していきましょう!」

1. C#で型を調べるとは?

1. C#で型を調べるとは?
1. C#で型を調べるとは?

C#(シーシャープ)では、変数がどの型(タイプ)なのかを調べることができます。というのは、「この変数は数字です」や「これは文字列です」といった、データの種類のことです。

プログラミングでは、データの型がとても重要です。間違った型のまま使うと、エラーが出てしまうこともあります。そのため、型を確認する方法を知っておくと、エラーを防いだり、プログラムの動きを理解したりするのに役立ちます。

2. GetType()メソッドとは?

2. GetType()メソッドとは?
2. GetType()メソッドとは?

GetType()メソッドは、変数が実際に持っているデータの型を調べるときに使います。使い方はとても簡単です。

例として、文字列(string)を入れた変数の型を調べてみましょう。


string message = "こんにちは";
Console.WriteLine(message.GetType());

System.String

このように、変数messageの型がSystem.String(C#でいう文字列型)だとわかります。

GetType()は、変数の中身が決まっているときに、その型を調べたい場合に使います。

3. typeof演算子とは?

3. typeof演算子とは?
3. typeof演算子とは?

一方、typeof(タイプオブ)演算子は、型そのものを直接指定して使います。変数ではなく、型の名前を渡して使う点がポイントです。


Console.WriteLine(typeof(int));

System.Int32

このコードでは、int(整数型)がSystem.Int32であると表示されます。

つまり、typeofは、これから使おうとしている型の情報を取得したいときに使います。

4. GetType()とtypeofの違い

4. GetType()とtypeofの違い
4. GetType()とtypeofの違い

ここで、GetType()typeofの違いを表でまとめておきましょう。

使い方 使うタイミング
GetType() 変数の型を調べるとき myVar.GetType()
typeof 型そのものを指定したいとき typeof(string)

5. typeofとGetType()を比較するサンプル

5. typeofとGetType()を比較するサンプル
5. typeofとGetType()を比較するサンプル

ここでは、typeofGetType()を同時に使って、同じ型かどうかを比較してみましょう。


int number = 100;

// GetType()とtypeofで型が一致するか調べる
if (number.GetType() == typeof(int))
{
    Console.WriteLine("型はintです!");
}
else
{
    Console.WriteLine("型が違います。");
}

型はintです!

このように、変数numberの型がintであることを確認することができます。

6. GetType()の戻り値の仕組み

6. GetType()の戻り値の仕組み
6. GetType()の戻り値の仕組み

GetType()が返す値は、Typeという特別なオブジェクトです。これはC#に用意された「型の情報を表すクラス」です。たとえば、次のように書くこともできます。


var typeInfo = "C#入門".GetType();
Console.WriteLine(typeInfo.FullName);

System.String

FullNameプロパティを使うと、より詳しい型の情報(完全修飾名)を見ることができます。

7. typeofを条件に使う活用例

7. typeofを条件に使う活用例
7. typeofを条件に使う活用例

typeofは、条件分岐や型のチェックにも使えます。たとえば、ジェネリック(型に依存する処理)で条件を変えるときなどです。


Type t = typeof(double);

if (t == typeof(double))
{
    Console.WriteLine("double型です。");
}

double型です。

このように、typeofは特定の型を前提とした処理に活用されます。

8. 実際にどちらを使えばよいのか?

8. 実際にどちらを使えばよいのか?
8. 実際にどちらを使えばよいのか?

プログラミング初心者の方は、「変数の中身の型を知りたいか」「型そのものを扱いたいか」で使い分けると覚えやすいです。

  • 変数の型を知りたいときGetType()
  • 型そのものを直接扱いたいときtypeof

まずは、GetType()を使ってみることから始めると理解しやすいでしょう。

まとめ

まとめ
まとめ

C#での型の確認は、プログラムの安全性や可読性を高めるために非常に重要です。この記事では、GetType()メソッドとtypeof演算子の違いと使い方について詳しく学びました。それぞれの使い分けポイントを押さえることで、コードの可視性やメンテナンス性が向上し、型の誤用によるエラーを未然に防ぐことができます。GetType()は変数の実際の型を調べる際に、typeofは型そのものの情報を取得したいときに用いるという明確な違いがありました。

また、Typeクラスを活用することで、FullNameNamespaceといった詳細情報を取得することも可能です。これにより、ログ出力やデバッグ時の情報収集にも応用できるようになります。さらに、条件分岐においても型の比較にtypeofGetType()を使うことで、より安全で明確な制御が可能です。

実際の開発現場では、ジェネリクスやリフレクションなど、より高度な型操作が必要になるケースもありますが、まずはこの基本的な2つの手法を理解することが第一歩です。型の確認を習慣づけることで、より堅牢なC#プログラミングスキルが身につくことでしょう。

型のチェックに使えるサンプルコード


// GetType()の活用例
object value = 3.14;
Console.WriteLine(value.GetType().FullName); // System.Double

// typeofの活用例
Type stringType = typeof(string);
Console.WriteLine(stringType.FullName); // System.String

// 比較して使う例
if (value.GetType() == typeof(double))
{
    Console.WriteLine("valueはdouble型です");
}
先生と生徒の振り返り会話

生徒

「先生、GetType()typeofの違い、しっかり理解できました!」

先生

「よかったです。それぞれの使い所を覚えることがポイントですね。どんなときに使い分けるか説明できますか?」

生徒

「はい。変数の中身の型を知りたいときはGetType()、型そのものを扱いたいときはtypeofですね!」

先生

「そのとおりです!今後はもっと複雑な型チェックや、リフレクションにもチャレンジしていきましょう。」

生徒

「はい!Typeクラスも気になるので、調べてみます!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

C#で変数の型を確認したいときは、どの方法を使えばいいですか?

C#で変数の型を調べたいときは、GetType()メソッドを使うと便利です。GetType()は、変数が実際に持っているデータの型を取得するために使用します。
カテゴリの一覧へ
新着記事
C#でタイムスタンプの精度を上げるためのテクニックを徹底解説!(初心者向け)
C#のコーディング規約(C# Coding Conventions)とは?読みやすいコードを書くための基本ルール
C#のデストラクタ(ファイナライザ)の使い方と注意点をやさしく解説!
COBOL資産のバージョン管理とは?初心者でもわかる保守と管理の基本
人気記事
No.1
Java&Spring記事人気No1
COBOLで学ぶSELECT文のORDER BY・GROUP BY活用法!初心者でもわかるデータ集計
No.2
Java&Spring記事人気No2
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.4
Java&Spring記事人気No4
COBOLで学ぶカーソル操作と複数行データ取得の基本
No.5
Java&Spring記事人気No5
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.7
Java&Spring記事人気No7
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.8
Java&Spring記事人気No8
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド