C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[12]: 参照設定をしていない他プロジェクトのインスタンス生成 [1]


(過去ログ 65 を表示中)

[トピック内 26 記事 (21 - 26 表示)]  << 0 | 1 >>

■37770 / inTopicNo.21)  Re[7]: 参照設定をしていない他プロジェクトのインスタンス生成
  
□投稿者/ なちゃ (306回)-(2009/06/30(Tue) 09:45:41)
dllは配置しないとだめですよ。
普通は実行ファイルのある位置に配置します。
参照設定は不要です。

あと、今回はFormのShowを使うなら別途インターフェイスは不要です。
上で書いたのはそういう話です。
インターフェイスを作るのは、新しく操作を定義したいからで、既にある操作を利用するだけなら不要です。

さすがにこの辺は入門書やマニュアルやら参照してください。

引用返信 編集キー/
■37797 / inTopicNo.22)  Re[8]: 参照設定をしていない他プロジェクトのインスタンス生成
□投稿者/ tailer (24回)-(2009/06/30(Tue) 17:00:13)
No37770 (なちゃ さん) に返信
> dllは配置しないとだめですよ。
> 普通は実行ファイルのある位置に配置します。
> 参照設定は不要です。
>
> あと、今回はFormのShowを使うなら別途インターフェイスは不要です。
> 上で書いたのはそういう話です。
> インターフェイスを作るのは、新しく操作を定義したいからで、既にある操作を利用するだけなら不要です。
>
> さすがにこの辺は入門書やマニュアルやら参照してください。
>

参照を解除するとdllが自動削除されてしまい、Assembly.Loadできなかったのですが、自動削除後に手動で再配置したらLoadできました。ありがとうございました。

Show()などのメソッドが定義されているインターフェースをForm継承クラスに実装する場合、それらのメソッドはFormで実装済みなので継承クラスでは何もしなくてよい、というようなことがどこかのサイトに書いてあったんですが、何もしないと「Show()を実装する必要があります」とコンパイルエラーが出て、やはり何かしなくてはならないのか?ということを聞きたかったんですが、これについてはもう少し情報を探してみることにします。
解決済み
引用返信 編集キー/
■37798 / inTopicNo.23)  Re[9]: 参照設定をしていない他プロジェクトのインスタンス生成
□投稿者/ Jitta on the way (342回)-(2009/06/30(Tue) 18:02:32)
No37797 (tailer さん) に返信

> Show()などのメソッドが定義されているインターフェースをForm継承クラスに実装する場合、それらのメソッドはFormで実装済みなので継承クラスでは何もしなくてよい、というようなことがどこかのサイトに書いてあったんですが、何もしないと「Show()を実装する必要があります」とコンパイルエラーが出て、やはり何かしなくてはならないのか?ということを聞きたかったんですが、これについてはもう少し情報を探してみることにします。

IForm というインターフェースに Show というメソッドを定義しました。これは、Form クラスが持っている Show メソッドとは別のものです。

今回のは、Form というクラスが持っているメソッドしか使わないようですから、インターフェースを定義する必要はないと思います。
解決済み
引用返信 編集キー/
■37813 / inTopicNo.24)  Re[10]: 参照設定をしていない他プロジェクトのインスタンス生成
□投稿者/ tailer (25回)-(2009/07/01(Wed) 10:38:26)
No37798 (Jitta on the way さん) に返信
> ■No37797 (tailer さん) に返信
>  
>>Show()などのメソッドが定義されているインターフェースをForm継承クラスに実装する場合、それらのメソッドはFormで実装済みなので継承クラスでは何もしなくてよい、というようなことがどこかのサイトに書いてあったんですが、何もしないと「Show()を実装する必要があります」とコンパイルエラーが出て、やはり何かしなくてはならないのか?ということを聞きたかったんですが、これについてはもう少し情報を探してみることにします。
> 
> IForm というインターフェースに Show というメソッドを定義しました。これは、Form クラスが持っている Show メソッドとは別のものです。
> 
> 今回のは、Form というクラスが持っているメソッドしか使わないようですから、インターフェースを定義する必要はないと思います。


今回はたまたまFormクラスが持っているメソッドしか使いませんが、もしFormクラスが持っているメソッド以外のメソッドも併せて定義する場合…たとえば

Public Interface IForm
    Sub Show()
    Sub Method1()
End Interface

のような場合。そしてShow()は、FormクラスのShow()に紐づけたい。なぜなら、IForm型の変数で画面表示も行いたいから。
そんなとき、やはり実装クラスではShow()について何かしなければならないんですよね?
それとも、インターフェースはMethod1()の定義だけにしておいて、Formクラスのメソッドが使いたいときはインスタンスをForm型に、Method1()が使いたいときは
インスタンスをIForm型に格納する…という形で使い分けるの一般的?
そんな疑問でした。

解決済み
引用返信 編集キー/
■37842 / inTopicNo.25)  Re[11]: 参照設定をしていない他プロジェクトのインスタンス生成
□投稿者/ Jitta on the way (344回)-(2009/07/01(Wed) 18:41:28)
No37813 (tailer さん) に返信

> そしてShow()は、FormクラスのShow()に紐づけたい。なぜなら、IForm型の変数で画面表示も行いたいから。
> そんなとき、やはり実装クラスではShow()について何かしなければならないんですよね?

はい。

んー…おそらく、Form.Show と、IForm.Show の区別を付けろと、怒られると思います。
そこで、IForm.Show は明示実装して隠し、明示的に呼ばれた時のために、this (VB では Me)を Form にキャストして、Show を呼ぶ、とかかな?
解決済み
引用返信 編集キー/
■38036 / inTopicNo.26)  Re[12]: 参照設定をしていない他プロジェクトのインスタンス生成
□投稿者/ tailer (26回)-(2009/07/06(Mon) 12:11:24)
No37842 (Jitta on the way さん) に返信
> ■No37813 (tailer さん) に返信
>
>>そしてShow()は、FormクラスのShow()に紐づけたい。なぜなら、IForm型の変数で画面表示も行いたいから。
>>そんなとき、やはり実装クラスではShow()について何かしなければならないんですよね?
>
> はい。
>
> んー…おそらく、Form.Show と、IForm.Show の区別を付けろと、怒られると思います。
> そこで、IForm.Show は明示実装して隠し、明示的に呼ばれた時のために、this (VB では Me)を Form にキャストして、Show を呼ぶ、とかかな?


遅くなりました。
やっぱりそうなんですね。
ありがとうございます。
解決済み
引用返信 編集キー/

<前の20件
トピック内ページ移動 / << 0 | 1 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -