8:55インターフェース参照を使用すると参照カウンターが使用されるので、意図しないタイミングでオブジェクトが破棄されてしまうことがあります。TPersonクラスはIPersonインターフェースを継承しています。FName);end;TTestクラスのSay関数はインターフェースを引数に取ります。Arg.Say;end;次のようにTPersonクラスのオブジェクトを、インターフェースを引数に取る関数に渡すと、関数が終わったときにオブジェクトが破棄されてしまいます。Person.Say;end.ジェネリックインターフェース制約は参照カウンターを使用しません。そのため、上のような問題は発生しません。Arg.Say;end;このようにジェネリックインターフェース制約を使用します。すると、参照カウンターは使用されず、オブジェクトは破棄されません。ID:ub257ayTそもそもまともな仕様書らしきもの公開してない時点で、バグだの違うだのとか議論しても無駄だしどうでもいいかな。バグとしてレポートするのが正しい道だと思います。登録済みならレポート番号を載せていただくと他の方の手間が省けます。14:02バグではありませんよ。Handbook(http://cc.embarcadero.com/item/30018)には、次のように書かれています。ID:KR339VIQ>>353じゃあ、どうすべきだったかといえば、初めからITest型の変数に代入しておけばいいだけ。ジェネリック制約どうこう以前のおはなし。言及も、しかしジェネリクス版とそうでないもので動作が違う。いう、説明しがたい不自然点を露わにしているだけに見えますね。10:13知らなかった人が少なくないようですね。記事を書いた甲斐がありました。インターフェース参照とジェネリックインターフェース制約の違いを理解して、うまく使い分けたいですね。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。»ブログ検索Search広告プロフィールカッコ良すぎと不評の似顔絵。似顔絵イラストメーカーで作りました。名前:山本隆(やまもとたかし)twitter:@gesourceGoogleGitHubリンクサイトのトップページこのサイトのトップページ。キャンセル投稿を送信できませんでした。メールアドレスを確認してください。メール送信チェックに失敗しました。このブログではメールでの投稿共有はできません。