コンピュータC#でデザインパターン「Compositeパターン」 Compositeパターンと言ったらファイルシステムでしょう。ということでサンプルコードを作成してみました。using System.ComponentModel;using System.Runtime.CompilerServices;... 2025.05.02コンピュータ
コンピュータC#でデザインパターン「AbstractFactoryパターン」 GUIのアプリケーションを作成する場合、ButtonやLabelなどのコントロールを配置すると思いますが、OSなどプラットフォームごとに生成するオブジェクトが異なる場合でも、生成する過程を抽象化することで同じ生成コードが適用できるようにする... 2025.05.02コンピュータ
コンピュータC#ででデザインパターン「FactoryMethodパターン」 オブジェクトの生成工程と生成するクラスを分離したパターン。クラスを差し替えたりすることで、開発と本番環境の切り替えなどがスムーズに出来るようです。サンプルコード/// <summary>/// FactoryMethodパターンのサンプルコ... 2025.05.02コンピュータ
コンピュータC#でデザインパターン「Facadeパターン」 複数のオブジェクトのメソッドを決まった手順で実行する処理がある場合、Facadeオブジェクトで手順を実行するメソッドとすることで、シンプルなインターフェイスを提供する目的。プログラミングで関数(メソッド)やサブルーチンを作る目的と同じ感じで... 2025.05.01コンピュータ
コンピュータC#でデザインパターン「Mediatorパターン」 オブジェクト同士で通信する場合、Mediatorというオブジェクトを介して通信を行うパターン。/// <summary>/// Mediatorパターンのサンプルコード/// </summary>class MyMediator{ Dict... 2025.05.01コンピュータ
コンピュータC#でデザインパターン「Prototypeパターン」 文章を作成する際、過去に似たいような文章を流用し、異なる部分だけを修正することがあります。これをオブジェクト指向プログラミングを表現するのが「Prototypeパターン」のようです。生成済みのオブジェクトをコピーし、新しいオブジェクトを作る... 2025.04.30コンピュータ
コンピュータC#でデザインパターン「Flyweightパターン」 Flyweightパターンは、オブジェクトに共通の属性がある場合、その属性のオブジェクトを一つ作りそれを参照すると、一か所に集約されるため、一か所を編集するだけで参照している全てのオブジェクトに反映されます。また、参照ですのでメモリの節約に... 2025.04.30コンピュータ
コンピュータC#でデザインパターン「Interpreterパターン」iniファイルから連想配列へ 昔のWindows系OSで設定用のファイルとしてiniファイルがありました。[Section1]Key1=Value1Key2=Value2[Section2]AnotherKey=AnotherValueこちらの書式を連想配列に変換してみ... 2025.04.25コンピュータ
コンピュータC#のリフレクションを使って異なるクラスのオブジェクトの同名プロパティの値をコピーしてみる。 異なるオブジェクトで同名プロパティの値をコピーすることがあり、プリミティブな形なのでリフレクションで上手いこと処理できないかと思いコードを書いて見ました。class MyClassA{ public string Name { get; s... 2025.04.20コンピュータ
コンピュータC#のプロジェクトディレクトリのサブディレクトリは自由に作成出来る。 プロジェクトディレクトリにソースファイルが複数保存されることになりますが、そのファイルをサブディレクトリで分類することができます。基本的にエクスプローラーでサブディレクトリを作成し移動するだけで良いみたいです。ただ、WPFのMainWind... 2025.04.19コンピュータ
コンピュータC#でデザインパターン「Observerパターン」 Observerパターンはオブジェクトの変化を通知する仕組みとのこと。C#ではObserverパターン用にIObservable<T>とIObserver<T>というインターフェイスが用意されているので、これを使ったサンプルコードをGemi... 2025.04.11コンピュータ
コンピュータC#でテキスト処理と正規表現 基本的な文字列操作と正規表現について調べてたことを記事にしています。オブジェクトの文字列化オブジェクトに.ToString()メソッドが定義されている場合、呼び出すことで文字列化することが出来ます。Console.WriteLine(obj... 2025.04.05コンピュータ
コンピュータdotnet.exeでconsole,wpf,classlibを1つのソリューションで構築しvscodeでデバック実行する方法 コードを再利用することを考えるとクラスライブラリ(classlib)として作成するのが望ましい。dotnet.exeのでclasslibのプロジェクトは以下のコマンドで作成することが出来ます。クラスライブラリプロジェクトの作成コマンドdot... 2025.04.03コンピュータ
コンピュータdotnet.exeでプリプロセッサのシンボルを定義するには。.csproj編集 .csprojにDefineConstantsでシンボルを定義します。csprojのサンプル<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputT... 2025.03.14コンピュータ