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

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

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

Re[1]: C#のinter faceでevent


(過去ログ 11 を表示中)

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

■2697 / inTopicNo.1)  C#のinter faceでevent
  
□投稿者/ 検索下手ちゃん (1回)-(2007/04/13(Fri) 14:35:09)

分類:[C# (Windows)] 

素人過ぎてすみません。
VBだと簡単にできるのですが、C#だとどう書けば良いのか分かりません。
どなたか教えて頂けないでしょうか?

Public Interface ITest

Event TestEvent(ByVal sender As System.Windows.Forms.Control, ByVal e As EventArgs)

End Interface

C#だとうまくできません。
delegeteとか書いてもインターフェースで型を宣言することはできません。とエラります。
お願い致します。
引用返信 編集キー/
■2701 / inTopicNo.2)  Re[1]: C#のinter faceでevent
□投稿者/ 未記入 (66回)-(2007/04/13(Fri) 14:45:22)
No2697 (検索下手ちゃん さん) に返信
> 素人過ぎてすみません。
> VBだと簡単にできるのですが、C#だとどう書けば良いのか分かりません。
> どなたか教えて頂けないでしょうか?
>
> Public Interface ITest
>
> Event TestEvent(ByVal sender As System.Windows.Forms.Control, ByVal e As EventArgs)
>
> End Interface
>
> C#だとうまくできません。
> delegeteとか書いてもインターフェースで型を宣言することはできません。とエラります。
> お願い致します。

オレオレ用語の使用は、こういう場所ではやめましょう。
件名も「Interface」にすべきです。

本題ですが、
VBの言語仕様とC#の言語仕様の違いを意識してください。
VBはイベント周りが言語使用としていくつか組まれていますが、C#にはありません。
イベントとデリゲートについて勉強する必要があります。
引用返信 編集キー/
■2706 / inTopicNo.3)  Re[2]: C#のinter faceでevent
□投稿者/ 検索下手ちゃん (2回)-(2007/04/13(Fri) 15:08:36)
すみません。
本題ばかり気になってしまい、題名がお粗末でした。
interfaceでなく通常のclassでは、私でもeventを書くことができるのですが、このeventを実装するクラスがいくつかあったのでintercaceで持たせようと思ったのがうまくいかず困っていたもので…。

C#だと結局できないということでよろしいのでしょうか?

引用返信 編集キー/
■2712 / inTopicNo.4)  Re[3]: C#のinter faceでevent
□投稿者/ Hongliang (128回)-(2007/04/13(Fri) 16:12:34)
Hongliang さんの Web サイト
クラスに実装させるときと変わりありません。
せいぜいアクセス修飾子を付けない程度です。

ただ、VB と違ってイベントの型となるデリゲートを暗黙に定義してはくれません。
ですので、必要に応じてデリゲートを自前で定義する必要があります。
// 大抵は既存のデリゲート、特に EventHandler で十分でしょうが。
引用返信 編集キー/
■2718 / inTopicNo.5)  Re[1]: C#のinter faceでevent
□投稿者/ 渋木宏明(ひどり) (180回)-(2007/04/13(Fri) 17:17:34)
渋木宏明(ひどり) さんの Web サイト
2007/04/13(Fri) 17:18:00 編集(投稿者)

interface ITest
{
event EventHandler TestEvent;
}

こんだけでしょ?

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

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

管理者用

- Child Tree -