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

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

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

VBとC#でのイベントでのアクセス修飾子の違い


(過去ログ 74 を表示中)

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

■43408 / inTopicNo.1)  VBとC#でのイベントでのアクセス修飾子の違い
  
□投稿者/ らぐんす (14回)-(2009/11/10(Tue) 10:35:40)

分類:[.NET 全般] 

VBで継承可能な親フォームにStartUpというイベントを実行します。

Partial Public Class BaseForm
Inherits Form

Protected Event StartUp() 'イベント
Private _init As Integer = 0

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
If _init = 0 Then
RaiseEvent StartUp() 'イベント発生
_init = 1
End If
End Sub
End Class

継承先のサブフォーム側にはカミナリマークにStartUpイベントが表示され、問題ありませんでした。

これをC#
public partial class BaseForm : Form {

protected event StartUpEventHandler StartUp; //イベント
protected delegate void StartUpEventHandler(); //デリゲート
private int _init = 0;

protected override void OnLoad(System.EventArgs e) {
base.OnLoad(e);
if (_init == 0) {
if (StartUp != null) {
StartUp(); //イベント発生
}
_init = 1;
}
}
}

に書き換えるとサブフォーム側のカミナリマークにStartUpイベントが出てきません。
ところがeventとdelegateの修飾子をpublicにするとカミナリマークが表示されるのです。
C#については知識があまりないのですが、どういうことかご教授願いないでしょうか?

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -