この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 63994|答える: 1

[出典] C#はIsAssignableFrom、IsSubclassOfの判定を継承します

[リンクをコピー]
掲載地 2019/11/18 11:45:09 | | |
時には、特定の型を見つけるために反射メカニズムを使うなど、クラスがインターフェースを実装しているかどうかを判断する必要があることもあります。

簡単に言えば、Type.IsAssignableFrom メソッドを使えます:

IsAssignableFrom は BarClass 型を IFoo インターフェースに割り当てられるかどうかを示しており、trueを返す条件は BarClass が直接的または間接的に IFoo インターフェースを実装していることです。 タイプ型にはIsSubclassOfというメソッドも存在し、ただクラスの継承関係を判定するために用いられます。例えば

FooClassがBarClassから継承されたことを示しています。

もちろん、IsAssignableFrom は継承を決定するためにも使用できます。

では、以下のコードについて:

インターフェースI { /* ... */ }
クラスA:I { /* ... */ }
クラスB:A { /* ... */ }
IsSubclassOf と IsAssignableFrom の返り値は以下の通りです:

typeof(A).isAssignableFrom(typeof(I)); 偽り
typeof(A).isSubClassOf(typeof(I)); 偽り
  
typeof(I).isAssignableFrom(typeof(A)); 確かに
typeof(I).isAssignableFrom(typeof(B)); 確かに
typeof(B).isSubClassOf(typeof(I)); 偽り
  
typeof(A).isAssignableFrom(typeof(A)); 確かに
typeof(A).isSubClassof(typeof(A)); 偽り
  
typeof(A).isAssignableFrom(typeof(B)); 確かに
typeof(A).isSubClassof(typeof(B)); 偽り
  
typeof(B).isAssignableFrom(typeof(A)); 偽り
typeof(B).isSubClassof(typeof(A)); 確かに






先の:.NET Core タイムスタンプ変換(10ビット)
次に:EFコアの穴:DbContextPoolがデータベース接続プール接続の枯渇を引き起こす
 地主| 掲載地 2021/03/19 13:39:47 |
ジェネリック基底クラスを継承するオブジェクトを手に入れます

免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com