ホームページ > バックエンド開発 > C++ > 「typeof」、「getType」、および「」は、C#タイプチェックでどのように異なりますか?

「typeof」、「getType」、および「」は、C#タイプチェックでどのように異なりますか?

DDD
リリース: 2025-01-30 17:01:12
オリジナル
467 人が閲覧しました

How Do `typeof`, `GetType`, and `is` Differ in C# Type Checking?

c#type examination:

typeof比較GetTypeis C#でタイプを処理する場合、オブジェクトまたは変数のタイプを確認するには多くの方法があります。効果的なタイプの検査には、、、および

の違いを理解することが不可欠です。

typeof GetType is

オペレーターはコンピレーションオペレーターであり、指定された型を示すオブジェクトを返します。通常、コンピレーション中にオブジェクトのタイプを比較するために使用されます。たとえば、typeof

typeofType

メソッドインスタンスのランタイムのタイプを返します。コンパイル時に実際のタイプがわからない場合でも、ランタイム中にオブジェクトのタイプを決定するために使用されます。たとえば、
<code class="language-csharp">Type t = typeof(int);
if (t == typeof(int))
    // 一些代码</code>
ログイン後にコピー

GetType

オペレーターは、インスタンスが指定された継承ツリーに配置されている場合、ランタイムオペレーターです。通常、オブジェクトが特定のタイプかその誘導体タイプかを確認するために使用されます。たとえば、GetType

<code class="language-csharp">object obj1 = 5;
if (obj1.GetType() == typeof(int))
    // 一些代码</code>
ログイン後にコピー
主な違い

is

:コンピレーション中の操作、指定されたタイプ名に基づいてタイプ情報を提供します。 is true

<code class="language-csharp">object obj1 = 5;
if (obj1 is int)
    // 一些代码</code>
ログイン後にコピー
:ランタイム中に操作して、実際のタイプのインスタンスを取得します。

:実行時に操作して、インスタンスが特定のタイプかその継承ツリーかを確認します。
  • 予防策typeof
  • これら3つの方法の最良の選択は、特定のシーンに依存します。
  • 優先度は、コンピレーション中にタイプの試験を実行するために使用され、できるだけ早くタイプの互換性を確保します。 動的コードシナリオなど、インスタンスタイプをチェックするときに役立ちます。 GetTypeオペレーターは、ランタイム中に相続関係を確認するのに便利です。
  • is次のコードを検討してください:
  • この例では、
のインスタンスである場合、

を返します。ただし、および

実際に

インスタンスを返します。 typeofback GetTypeがインスタンスである場合。 is

以上が「typeof」、「getType」、および「」は、C#タイプチェックでどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート