C♯相談室 Part2
■ このスレッドは過去ログ倉庫に格納されています
0305名無しさん♯
NGNGdelegate : 型の宣言,event : クラスメンバーの宣言ということで、根本的に違うよん。
eventと比べるべきは、delegateの「インスタンス」の方ね。
いちばんまぎらわしいのはこういうやつかな。
delegate void SomeDelegate();
class Test
{
public SomeDelegate Hoge;
}
class Test2
{
public event SomeDelegate Hoge;
}
両方共通でできることは、
・+= でメソッド追加
・-= でメソッド削除
・クラス内部から、= でメソッド代入
・クラス内部から、メソッド実行
一方、eventではできないことは、
・クラス外部から、= でメソッド代入
・クラス外部から、メソッド実行
あと、eventは(propertyと同じで)abstract,override,sealed,virtualで宣言できるよん。
つまり、見た目はフィールドっぽいけど、ふるまいはメソッドだということ。
なので、フィールド対プロパティみたいな感じでとらえるといいのかな。
■ このスレッドは過去ログ倉庫に格納されています