c#

コンピュータ

C#でデザインパターン「Compositeパターン」

Compositeパターンと言ったらファイルシステムでしょう。ということでサンプルコードを作成してみました。using System.ComponentModel;using System.Runtime.CompilerServices;...
コンピュータ

C#でデザインパターン「AbstractFactoryパターン」

GUIのアプリケーションを作成する場合、ButtonやLabelなどのコントロールを配置すると思いますが、OSなどプラットフォームごとに生成するオブジェクトが異なる場合でも、生成する過程を抽象化することで同じ生成コードが適用できるようにする...
コンピュータ

C#ででデザインパターン「FactoryMethodパターン」

オブジェクトの生成工程と生成するクラスを分離したパターン。クラスを差し替えたりすることで、開発と本番環境の切り替えなどがスムーズに出来るようです。サンプルコード/// <summary>/// FactoryMethodパターンのサンプルコ...
スポンサーリンク
コンピュータ

C#でデザインパターン「Facadeパターン」

複数のオブジェクトのメソッドを決まった手順で実行する処理がある場合、Facadeオブジェクトで手順を実行するメソッドとすることで、シンプルなインターフェイスを提供する目的。プログラミングで関数(メソッド)やサブルーチンを作る目的と同じ感じで...
コンピュータ

C#でデザインパターン「Mediatorパターン」

オブジェクト同士で通信する場合、Mediatorというオブジェクトを介して通信を行うパターン。/// <summary>/// Mediatorパターンのサンプルコード/// </summary>class MyMediator{ Dict...
コンピュータ

C#でデザインパターン「Prototypeパターン」

文章を作成する際、過去に似たいような文章を流用し、異なる部分だけを修正することがあります。これをオブジェクト指向プログラミングを表現するのが「Prototypeパターン」のようです。生成済みのオブジェクトをコピーし、新しいオブジェクトを作る...
コンピュータ

C#でデザインパターン「Flyweightパターン」

Flyweightパターンは、オブジェクトに共通の属性がある場合、その属性のオブジェクトを一つ作りそれを参照すると、一か所に集約されるため、一か所を編集するだけで参照している全てのオブジェクトに反映されます。また、参照ですのでメモリの節約に...
コンピュータ

C#でデザインパターン「Interpreterパターン」iniファイルから連想配列へ

昔のWindows系OSで設定用のファイルとしてiniファイルがありました。[Section1]Key1=Value1Key2=Value2[Section2]AnotherKey=AnotherValueこちらの書式を連想配列に変換してみ...
コンピュータ

C#のリフレクションを使って異なるクラスのオブジェクトの同名プロパティの値をコピーしてみる。

異なるオブジェクトで同名プロパティの値をコピーすることがあり、プリミティブな形なのでリフレクションで上手いこと処理できないかと思いコードを書いて見ました。class MyClassA{ public string Name { get; s...
コンピュータ

C#のプロジェクトディレクトリのサブディレクトリは自由に作成出来る。

プロジェクトディレクトリにソースファイルが複数保存されることになりますが、そのファイルをサブディレクトリで分類することができます。基本的にエクスプローラーでサブディレクトリを作成し移動するだけで良いみたいです。ただ、WPFのMainWind...
コンピュータ

C#でデザインパターン「Observerパターン」

Observerパターンはオブジェクトの変化を通知する仕組みとのこと。C#ではObserverパターン用にIObservable<T>とIObserver<T>というインターフェイスが用意されているので、これを使ったサンプルコードをGemi...
コンピュータ

C#でテキスト処理と正規表現

基本的な文字列操作と正規表現について調べてたことを記事にしています。オブジェクトの文字列化オブジェクトに.ToString()メソッドが定義されている場合、呼び出すことで文字列化することが出来ます。Console.WriteLine(obj...
コンピュータ

dotnet.exeでconsole,wpf,classlibを1つのソリューションで構築しvscodeでデバック実行する方法

コードを再利用することを考えるとクラスライブラリ(classlib)として作成するのが望ましい。dotnet.exeのでclasslibのプロジェクトは以下のコマンドで作成することが出来ます。クラスライブラリプロジェクトの作成コマンドdot...
コンピュータ

dotnet.exeでプリプロセッサのシンボルを定義するには。.csproj編集

.csprojにDefineConstantsでシンボルを定義します。csprojのサンプル<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputT...