クラス参照から作成されるオブジェクトが特定のクラスのインスタンスなのか、その子孫のインスタンスなのかを知りたいのですが。
つまり、次のようなブール式が必要です。
var is TMyClass
ただし、varは、クラス参照変数を含む式に置き換えられます。簡単そうに聞こえますが、私は完全に困惑しています。
インスタンスvar:= classRefVar.Createを作成し、テストしてから破棄することもできますが、それは大きなオーバーヘッドです。
奇妙なことに、コンパイラは私に
classRefVar(nil) is TMyClass
構文的には同等に見えるが役に立たないことに満足している
TMyClass(nil) is TMyClass
明らかに、式
classRefVar = TMyClass
classRefVarがTMyClassの子孫を参照している可能性があるため、これは適切ではありません。
答えを見たら自分を蹴るつもりです...