0

私は C# が初めてで、最近は msdn.microsoft.com ( http://msdn.microsoft.com/en-us/library/vstudio/dd492172.aspx )からこのチュートリアルを勉強しています。

このチュートリアルの一部に、考えているように新しいオブジェクトを作成するステートメントがありますが、数値の上下コントロールについてはわかりません。ステートメントは次のとおりです。

NumericUpDown answerBox = sender as NumericUpDown; 

このページにあります(http://msdn.microsoft.com/en-us/library/vstudio/dd492138.aspx

問題は、これら 2 つのステートメントの違いは何か、そして両方が何を意味するかということです。

NumericUpDown answerBox = sender as NumericUpDown;

NumericUpDown answerBox = new NumericUpDown();

前もって感謝します。

4

5 に答える 5

0

NumericUpDown が入力されると (チュートリアルでサブスクライブするイベント)、Windows フォームは、入力された特定の NumericUpDown ボックスを として渡しますsendersenderこれは、多くのオブジェクトがこのようなイベントを持っているため、何でも渡すことができることを意味します。senderこれが NumericUpDown であることをコンパイラに伝える必要があります。これが最初の処理です。

2 番目は、どのフォームにもないまったく新しい NumericUpDown を作成するため、基本的には役に立ちません。

于 2013-04-16T03:11:12.670 に答える
0

最初のものは、実際にオブジェクト「sender」を取得し、それを「NumericUpDown」タイプとしてキャストしています。これは、次のキャスト コード「(NumericUpDown)sender」に近いものです。主な違いは、「sender」の型を NumericUpDown 型にキャストできない場合、「as」演算子が null を返すことですが、(NumericUpDown)送信者は InvalidCastException をスローします。

2 番目のステートメント「NumericUpDown answerBox = new NumericUpDown()」は、パラメーターなしのコンストラクターを使用して NumericUpDown 型の新しいインスタンスを作成しています。

于 2013-04-16T03:11:37.247 に答える