partialを使うことで、クラスの定義を複数の箇所に分割できる。
partial 型 - C# リファレンス | Microsoft Docs
Windows アプリケーションで作成。
新しい項目として、
コードファイルでClass1_A.csを追加。
partialでクラスを定義。今回はデータメンバだけ書いておく。
次に、
Class1_B.csを追加し、
今度はメソッドだけ。
Program.csで、
オブジェクトclass1を作成し、Addで渡した数値を加算し、GetResultで結果を得て、表示。
加算前はこうだが、
加算後はこう。
こんな風に分割できるのだが、FormとEventHandlerの関係もそんな感じ・・・。
加算後に、
こんな風に出てくるけど。
いったん実行を終了し、メニューのコードの表示で、
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace partial { public partial class Form1 : Form { public Form1() { InitializeComponent(); } } }
こうなってるので、
デザイナの表示で、
Buttonを選択。
貼り付けて、ダブルクリックすると、
イベントハンドラが追加される。
で、こう書く。
実行すると、先ほどの加算結果のメッセージボックスの後に、
これが現われて、button1を押すと、
こうなる。
このハンドラの仕組みのカギを握るのが、
Form1.Designer.cs。
これをクリックしてみると、
Form1のpartialが定義されている。
"Windows フォーム デザイナで生成されたコード"というところを開くと、
button1_Clickをthis.button1.Clickにイベントハンドラ追加する処理が、このように書いているのである。
これもpartialの成せる業。
Sample/cs/partial/partial/src/partial at master · bg1bgst333/Sample · GitHub