個人でプログラミングを楽しむ分にはどのような方法で開発しても構わないと思いますが、すこし規模が大きくなると、クラス単位に機能や役割を分割することになり、それらを単体テストする必要性を感じることがあります。今回は、テストプロジェクトの作成~単...
個人でプログラミングを楽しむ分にはどのような方法で開発しても構わないと思いますが、すこし規模が大きくなると、クラス単位に機能や役割を分割することになり、それらを単体テストする必要性を感じることがあります。今回は、テストプロジェクトの作成~単...
指定のディレクトリのファイルの一覧を取得し、ファイルのパスをキーとしてデータベースのテーブルからコメント項目の文字列を取得するコードに成ります。// ファイル・ディレクトリの一覧を取得する。using System.IO;using Mic...
WPFでシングルウィンドウアプリケーション(一つのウィンドウだけで完結するアプリ)を作っていると、Viewにコントロールを沢山配置することになり、Viewを構成するXAMLファイルと、データソースとして紐づくViewModelのソースファイ...
1つしか存在しないものや、複数あると都合の悪いものを、インスタンス化する仕組み。・基本的に一つしか存在しないもの:システムの設定情報ロギングサービスプリンタスプーラー・複数存在すると都合の悪いもの:データベース接続プールキャッシュマネージャ...
C#ではList<T>などIEnumerable<T>インターフェースを実装したコレクションと、それをループ処理するforeachがあるので、Iteratorパターンを実装する機会は少ないと思われます。サンプルコードusing System...
MVVMで使うICommandというインターフェイスがあり、これを実装することでViewからViewModelのCommandを呼び出すことが出来ます。ウィキペディアの「Commandパターン」のページサンプルコードusing System...
オブジェクトの構築プロセスを段階的に行い、複雑なオブジェクトを柔軟に生成するためのデザインパターンです。ウィキペディアの「Builderパターン」のページサンプルコード/// <summary>/// BUilderパターンのサンプルコード...
Adapterパターンを使うと、既存のクラスを直接加工することなく、新たなインターフェイスを作ることが出来る。ウィキペディアの「Adapterパターン」のページサンプルコード/// <summary>/// Adapterパターンのサンプル...
Bridgeパターンを使うと、複数の要素の組み合わせの数分クラスを生成する必要があるケースで、要素をクラス化することで少ないクラス数で組み合わせを表現出来るように出来る。ウィキペディアの「Bridgeパターン」のページサンプルコード/// ...
オブジェクトを動的に装飾するパターンウィキペディアの「Decoratorパターン」のページサンプルコード/// <summary>/// Decoratorパターンのサンプルコード/// </summary>interface IProdu...
オブジェクトへのアクセスを制御し、必要に応じて追加の処理を提供する中間オブジェクトを用いるパターンとのこと。現実のProxyサーバーはHTTPリクエストを中継し代わりにアクセスすることで、本来アクセスできないネットワークからのWebブラウジ...
オブジェクトの状態を外部に公開せずに保存し、後でその状態に復元するためのパターンみたいです。ウィキペディアの「Mementoパターン」のページサンプルコードusing System.ComponentModel;using System.D...
オブジェクトの内部状態に応じて振る舞いを変更し、状態遷移をクラスとして表現するパターンです。ウィキペディアの「Stateパターン」のページサンプルコード/// <summary>/// Stateパターンのサンプルコード/// </summ...
Strategyパターンは処理のアルゴリズムをカプセル化し、実行時に切り替えることを目的としたパターンです。ウィキペディアの「Strategyパターン」のページサンプルコード/// <summary>/// Strategyパターンのサンプ...
クラスが提供する機能(TemplateMethod)を実現するため、その実装の一部をサブクラスに任せることで、コードの柔軟性と再利用性を高めるパターンウィキペディアのTemplateMethodパターンのページサンプルコード/// <sum...
クラスが提供する機能(TemplateMethod)を実現するため、その実装の一部をサブクラスに任せることで、コードの柔軟性と再利用性を高めるパターンウィキペディアのTemplateMethodパターンのページサンプルコード/// <sum...
Visitorパターンは、既存のクラスの構造を変更することなく、それらのクラスに対する新しい操作(メソッド)を外部から追加することを目的としたデザインパターンみたいです。Wikipediaの「Visitorパターン」サンプルコード/// <...
Compositeパターンと言ったらファイルシステムでしょう。ということでサンプルコードを作成してみました。using System.ComponentModel;using System.Runtime.CompilerServices;...
メインPCのHDDからSSDへの置き換えが完了して大分時間が経過しました。ファイルのバックアップ用に3.5インチHDDを接続していたのですが、そちらを動画作成用のプロジェクトフォルダとして使ってみました。極端に遅くなってしまい、SSDの速度...
GUIのアプリケーションを作成する場合、ButtonやLabelなどのコントロールを配置すると思いますが、OSなどプラットフォームごとに生成するオブジェクトが異なる場合でも、生成する過程を抽象化することで同じ生成コードが適用できるようにする...
OpenCVには多数の画像フィルターがあります。また、numpyを使うと画像をピクセル単位で加工するフィルターを作成することが出来ます。個人的によく使う画像フィルター類をまとめたいと思います。 ライブラリのインポート import cv2
前回の問題点として右クリックで表示するコンテキストメニューやダブルクリックの検出がリストビューのアイテム以外でも動作してしまう点がありました。ネット検索して解決方法を探しプログラムに組み込んでみました。また、リスてビューの項目のヘッダーをク
いまいち理解できていないのですが、コードを書いてみたら思った通りに動作したので記事にしてみました。 ソースコード ファイル名:FileEntity.cs using System.ComponentModel; using Reactive
メインメモリーを64GB搭載しているPCで画像ファイルを拡大処理をしていたところOutOfMemoryErrorが発生しました。 元が1000x1000ぐらいの解像度の画像を256倍は通りましたが、300倍ではエラーになります。 そんなに大
前回別ウィンドウを表示することはできましがた、別ウィンドウで入力した値へアクセスする方法がしっくりこない感じでした。 ソースコード ファイル名:MainWindow.xaml <Window x:Class="DialogS
リストビュー上でマウスをクリックし、ビューモデル側で該当するアイテムを検出する方法を考えてみます。 ソースコード ファイル名:FileEntity.cs namespace ListViewOnClick; public class Fil
Amazonを眺めていたらお手頃価格のSIMカードが2枚搭載可能なスマートフォンが販売されいたので機種変更しました。 それまで使っていた機種と比べてメモリーが増えたおかげかアプリケーションの起動が速く操作性は良好です。 タップ後一呼吸まって
「Custom Context Menu」というアプリケーションを使うとWindows11のエクスプローラーの右クリックメニューに任意のアプリケーションを登録することが出来ます。 アプリケーションが登録出来るということは、「pwsd.exe
前回はファイルアイコンを表示するところを作りました。 今回はファイルサイズと更新日付の表示部分を作成したいと思います。 ソースコード ファイル名:DataSizeConverter.cs using System; using System
ファイルマネージャを作っていまして、ファイルの一覧のUIをリストビューで試作してみました。 ソースコード ファイル名:FileInfoEntity.cs using System.Windows.Media.Imaging; namespa
OpenCVには画像を加工してくれるフィルターが沢山あります。欲しい画像が出来上がるまでフィルターのパラメーターの調整作業をする場合GUIがあると便利です。フィルターが1つの場合やフィルターの実行手順が決まっている場合のプログラムは以前作成
前回WinFormsで作成しましたが、どうもうまく動作してない感じがするのでWPFで再度作成してみました。 ソースコード ファイル名:MainWindow.xaml <Window x:Class="ExecuteButto
OpenCVのフィルターを任意の順番で実行するUIを作っていて、データソースで悩んでいます。 実行順番のことを考えるとListなどの要素の順番をもつ構造のコレクションが良さそうですが、要素となるフィルターをオブジェクト化しようとすると、異な
Objet using System.Text; using System.Text.Json; string path = "JsonSample01.json"; var encoding = Encoding.Ge
カレントディレクトリを変更するために、コンボボックスを使ってドライブの一覧を選択するUIがあります。 また、ドライブだけではなくカレントディレクトリとその上位階層も選択するようになっていると便利です。 実際作れるか挑戦してみました。 以下7
前回インターフェイスのデシリアライズに失敗しましたので対策を考えてみたいと思います。 まずListの要素の型を確認します。TはISampleBaseですが各要素に対してGetType()メソッドを実行しどの型になるか確認します。 using
List<T>のTをインターフェースにしたオブジェクトをJSON形式でシリアライズ・デシリアライズ出来るのか確認してみます。 予想ですがシリアライズは出来てもデシリアライズは無理そうな気がします。 まずはシリアライズしてみます。
C#ではzipファイルを扱うライブラリがありますが、今回はzipファイルをバイナリデータとして読み込んんで中身をのぞいいてみようと思います。 wikipediaでZIPファイルのページを眺めていたところZIPファイルの構造の情報がありました
全てのピクセルの左右上下を検査し縁に当たる部分か調べる方法で縁取りをしてみます。 import cv2 import numpy as np def createBaseImage(): # 黒色のキャンバス(512x512)作成 img
MediaElementはWPFで動画を再生することが出来るコントロールです。 今回は動画を再生した際どのようなイベントが発生するか確認してみます。 サンプルプログラム ファイル名:MainWindow.xaml <Window x: