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