【C#】WinFormsアプリで自作クラスライブラリを作る(同一ソリューション内)

WinFormsアプリケーションで自作のクラスライブラリを作成し、それを使用する方法について説明します。クラスライブラリは、再利用可能なコードの集まりであり、様々なアプリケーション間で共有できるため、開発の効率化に役立ちます。

ステップ 1: クラスライブラリプロジェクトの作成

  1. Visual Studioを開きます。
  2. 「新しいプロジェクトの作成」を選択します。
  3. プロジェクトタイプとして「クラスライブラリ (.NET Framework)」を選択し、次に進みます。(.NET Coreまたは.NET 5/6/7/8等の場合は、適切なオプションを選択してください)
  4. プロジェクトに名前(例;Liblary)、ソリューション名(FormApp)を付け、保存場所を選択します。
  5. 「作成」をクリックしてプロジェクトを作成します。

ステップ 2: クラスの追加とコードの記述

  1. プロジェクトに右クリックし、「追加」>「クラス」を選択して、新しいクラスを追加します。
  2. クラスに名前を付けます(例: Calc.cs)。
  3. クラスファイルを開き、必要な機能を実装します。例えば、以下のようなシンプルなメソッドを持つクラスを作成します。
namespace Library
{
    public class Calc
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    }
}

ステップ 3: クラスライブラリのビルド

  • ソリューションエクスプローラーでクラスライブラリプロジェクトを右クリックし、「ビルド」を選択します。
  • ビルドが成功すると、bin\Debugまたはbin\Releaseフォルダ内に.dllファイルが生成されます。

DLLは「Dynamic Link Library」の略で、Windowsオペレーティングシステムで使用される一般的なファイル形式の一つです。DLLは、アプリケーションに必要な機能を提供するために、複数のプログラムによって共有されるコードとリソースを含んでいます。

DLLは、通常、関数やクラス、データ構造などのコードとリソースを提供することができます。アプリケーションは、DLL内の関数やクラスを呼び出して、必要な機能を実行することができます。また、DLLは、アプリケーションのバージョンアップや修正を容易にすることができます。DLL内のコードやリソースを変更することで、アプリケーション自体を変更することなく、新しい機能を追加したり、問題を修正したりすることができます。

また、DLLは、動的リンクと静的リンクの2つの方法で使用することができます。動的リンクでは、DLLは実行時にロードされ、アプリケーションに必要な機能を提供します。静的リンクでは、DLLのコードとリソースがアプリケーションに含まれ、アプリケーション自体がDLLを含んでいます。

DLLは、多くのWindowsアプリケーションで使用されており、WindowsのAPI(Application Programming Interface)にも多数含まれています。DLLは、C、C++、C#などのプログラミング言語で作成することができます。

ステップ 4: WinFormsアプリケーションプロジェクトにクラスライブラリを追加

  1. WinFormsアプリケーションプロジェクトを新しく追加作成(例:FormApp)してください)。
  2. ソリューションエクスプローラーでWinFormsプロジェクトを右クリックし、「追加」「参照」を選択します。
  3. クラスライブラリプロジェクトのビルドで生成された.dllファイルを見つけ、選択して「OK」をクリックします。

FormAppプロジェクトにLibraryプロジェクトの参照を追加します

全てのファイルの表示アイコンを選択した画面

ステップ 5: クラスライブラリの使用

  • WinFormsアプリケーションのコード内で、クラスライブラリに含まれるクラスを使用します。例えば、以下のようにCalcクラスのAddメソッドを使用できます。
using Library;

namespace FormApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            Calc calc = new Calc();
            int result = calc.Add(5, 3);
            MessageBox.Show($"結果: {result}");
        }
    }
}

この方法で、自作のクラスライブラリをWinFormsアプリケーションに統合し、その機能を利用することができます。クラスライブラリを更新する場合は、変更後に再びビルドを行い、WinFormsアプリケーションプロジェクトに最新の.dllを参照させる必要があります。