C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[1]: Formクラス等の型確認方法
(過去ログ 164 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 3 記事 (1 - 3 表示)] <<
0
>>
■95017
/ inTopicNo.1)
Formクラス等の型確認方法
▼
■
□投稿者/ 棚橋
(1回)-(2020/06/13(Sat) 12:35:32)
分類:[VB.NET/VB2005 以降]
(VB2019使用)
デザイナでForm1、Form2というフォームクラスを用意したとします。
ある変数f(Nothingではない)について、
・fがFormであるかどうか(Form1もForm2もTrue)
・fがForm1であるかどうか(Form2はFalse)
を判定するにはどうすればよいのでしょうか?
また、Ixxxというインターフェースを実装したクラスcls1とcls2があるとします。
ある変数x(Nothingではない)について、
・xがIxxxを実装しているかどうか(cls1もcls2もTrue)
・xがcls1であるかどうか(cls2はFalse)
の判定方法も同じでしょうか?
引用返信
編集キー/
編集
■95018
/ inTopicNo.2)
Re[1]: Formクラス等の型確認方法
▲
▼
■
□投稿者/ Hongliang
(1051回)-(2020/06/13(Sat) 12:44:59)
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/operators/typeof-operator
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/operators/trycast-operator
TypeOf演算子またはTryCast演算子を使えます。
TypeOf演算子はちょうどご質問の通りの挙動です。
TypeOf f Is FormならForm1でもTrueですし、インターフェイスにも適用できます宇。
TryCastは、キャストできるならキャストし、できないならNothingを返す演算子です(なので値型には使用できません)。
TryCast(f, Form)ならForm型を返し、TryCast(f, Form2)ならNothingを返します。
引用返信
編集キー/
編集
■95020
/ inTopicNo.3)
Re[1]: Formクラス等の型確認方法
▲
▼
■
□投稿者/ 棚橋
(2回)-(2020/06/13(Sat) 13:17:43)
ありがとうございました。
TypeOfを使用した、以下の式でうまくいきました。
> ・fがFormであるかどうか(Form1もForm2もTrue)
If TypeOf f Is Form Then
> ・fがForm1であるかどうか(Form2はFalse)
If TypeOf f Is Form1 Then
> ・xがIxxxを実装しているかどうか(cls1もcls2もTrue)
If TypeOf x Is Ixxx Then
> ・xがcls1であるかどうか(cls2はFalse)
If TypeOf x Is cls1 Then
また、TryCastの使い方も分かりました。ありがとうございました。
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-