
C#でわからないことが2,3あるのですが、このmsndのサンプルで
public class FirstControl : Control{
public FirstControl() {}
protected override void OnPaint(PaintEventArgs e) {
// Call the OnPaint method of the base class.
base.OnPaint(e);
// Call methods of the System.Drawing.Graphics object.
e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), ClientRectangle);
}
}
これのprotected override void OnPaint(PaintEventArgs e){}
の部分なのですが、なぜprotected overrinde修飾子なのでしょう
何をオーバーライドしてるのですか?他のサンプルにも構文のように出てくるのですが。
あとOnPaintはメソッドのようですがイベントを発生させるにはデリゲートではないのでしょうか
あとPaintEventArgsはクラスということですがnewはいらないのでしょうか。staticがどこかにあるのでしょうか
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
> の部分なのですが、なぜprotected overrinde修飾子なのでしょう
> 何をオーバーライドしてるのですか?他のサンプルにも構文のように出てくるのですが。
System.Windows.Forms.Control.OnPaintをoverrideしています。
元のメソッドがprotectedなので,可視性はprotectedのままになります。
overrideなので,継承元を辿っていけば元になるメソッドがあります。
http://msdn.microsoft.com/ja-jp/library/system.w …
> あとOnPaintはメソッドのようですがイベントを発生させるにはデリゲートではないのでしょうか
イベントを発生させることができるのは,イベントを定義したクラスのみです。
Paintイベントは,System.Windows.Forms.Controlのメンバなので,System.Windows.Forms.Control.OnPaintメソッドがイベントを発生させます。
また,イベントの前にOnが付いたprotected virtualなメソッドでイベントを発生させるのは,MSのガイドラインに沿った作りです。
http://msdn.microsoft.com/ja-jp/library/ms229011 …
> あとPaintEventArgsはクラスということですがnewはいらないのでしょうか。staticがどこかにあるのでしょうか
クラスのインスタンスが引数eに渡されてくるのです。
なので,なぜ「newはいらないのか」という発想になるのかが不思議です。
C#の文法をちゃんと勉強しましょう。
http://msdn.microsoft.com/ja-jp/library/ms173114 …
http://msdn.microsoft.com/ja-jp/library/51y09td4 …
http://msdn.microsoft.com/ja-jp/library/8f1hz171 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaの問題なんですが、練習14-...
-
プログラムのコードを見ていた...
-
【急募です】Javaの問題回答に...
-
readLine()ではじめから読み直...
-
String.containsの反対機能はあ...
-
contextってなんですか?
-
C# 点の描き方をおしえてくだ...
-
下記のリストならno002が含まれ...
-
JavaからCへ
-
C# asp.net HTMLタグのエスケ...
-
JAVAコンパイルができない。
-
abstract と static を一緒に付...
-
静的メソッドとインスタンスメ...
-
中学のクラス数
-
VB.NETでのnothing の意義について
-
Dispose()は、どんな時に使うの...
-
ヒグマを撃退
-
0歳児の指しゃぶりに関して
-
「タイプ初期化子が例外をスロ...
-
そんなにお金がなくても年に1度...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコード件数の表示
-
Java初級 引数に適用できません
-
String.containsの反対機能はあ...
-
StringBufferからStringへキャ...
-
abstract と static を一緒に付...
-
return new使用時
-
なぜprotected overrideなのか
-
C言語での文字列より値を抜き出す
-
C# 点の描き方をおしえてくだ...
-
スーパークラスからサブクラス...
-
説明文書でのメソッド・変数の...
-
別クラスのmainメソッドの実行
-
Strutsでチェックボックスの値...
-
CSVから読み込んだデータの保持...
-
Javaの関数名が長い?
-
java ジェネリックスに関して
-
Java初心者です、エラーの意味...
-
シェルスクリプトからのJavaメ...
-
C# でメソッドに送られてきたOb...
-
Java初心者です。例外のキャッ...
おすすめ情報