Mizeee

とあるソフトウェアエンジニア

Mizeee

とあるソフトウェアエンジニア

最近の記事

C#(WPF)勉強メモ-信号機シミュレータを作る

1. はじめに  C#勉強メモでは、筆者が学んだことをまとめたものである。今回は、WPFを使用して信号機シミュレータを作成する。 2. 信号機とは  信号機とは、歩行者や車両の安全な誘導を行うためのライトである。信号機には、青・黄・赤のランプがついており、通行者は、信号の色を見て進むかどうか判断する。  信号機には、歩行者用と車両用がある。歩行者用は、青と赤の2種類のランプを使用し、車両用の信号には、3つの種類のランプがついている。 青:車両は走行することができる

    • C#(WPF)勉強メモ-Imageコントロール

      1. はじめに  C#勉強メモは、筆者が学んだことをまとめたものである。今回は、Imageコントロールを取り上げる。 2. Imageコントロール  Imageとは、画像を表示するコントロールである。例えば、ビットマップの画像を表示したいときは、Imageコントロールを使用して、画像を表示することができる。 2.1 プロパティ ・Source: 画像のパス ・Width: 幅 ・Height: 高さ 2.2 例題  Sourceに画像のパスを記述することで画像が

      • C#(WPF)勉強メモ-ICommandを使用したログインフォームの作成

        1. はじめに  C#勉強メモでは、筆者が学んだことをまとめたものである。今回は、ICommandインタフェースを使用してログインフォームを作成する。 2. 作成するログインフォーム  今回は、下記のログインフォームを目標とする(図1)。 仕様: (1)  ウィンドウにIDとパスワードの入力フォームを作成する。 (2) IDとパスワードを入力し、ログインボタンを押すと、ログイン成功と表示する。 (3) ただし、未入力がある場合は、入力エラーと表示する。 3. 画面を

        • C#(WPF)勉強メモ-DispatcherTimer

          1. はじめに  C#勉強メモでは、筆者が学んだことをまとめたものである。今回は、DispatcherTimerを取り上げる。 2. DispatcherTimer  DispatcherTimeとは、タイマー関連の処理をまとめたクラスである。例えば、1秒ごとに表示内容を更新する場合を考える。DispatcherTImerを使用すると、指定した時刻に合わせてイベントを発行することができる。 2.1 インスタンス化  DispatcherTimerのクラス定義は、下記

          C#(WPF)勉強メモ-Borderコントロール

          1. はじめに  C#勉強メモでは、筆者が学んだことをまとめたものである。今回は、Borderコントロールについてまとめる。 2. Borderコントロール  Borderコントロールは、レイアウト内に境界線を引く場合に使用する。 2.1 プロパティ ・BorderThickness: 線の太さ ・BorderBrush: 線の色 2.2 例題  下記に、Borderタグを使用した例を示す。 <Grid> <Grid.ColumnDefi

          C#(WPF)勉強メモ-Borderコントロール

          C#勉強メモ-共有メモリを使ったデータのやり取り

          1. データをやり取りする方法  単一で動作するプログラムにおいて、データはそのプログラム内に確保し、動作する。一方、複数のプログラムで動作する場合は、相互で適切にやり取りをする必要がある。  やり取りをする方法としてぱっと思いつくのは、下記の3つである。 (1) ネットワークを使用し、データをやり取りする。 (2) 共有メモリを使用し、データのやり取りを行う。 (3) ファイル同士でやり取りする  それぞれを詳しくまとめる。 1.1 ネットワークを使用したデータの

          C#勉強メモ-共有メモリを使ったデータのやり取り

          C#(WPF)勉強メモ5-Canvasコントロール

          1. Cavasコントロール  Cavasは、ある領域を作成し、絶対座標を指定してレイアウトを操作できるコントロールである。例えば、画像の貼り付けなどの特定の位置に要素を配置する場合に便利である。 2. プロパティ  プロパティを下記に示す。 ・BackGround: 背景色を設定する。 ・Width: Canvasの幅を設定する。 ・Height: Canvasの高さを設定する。 ・Top: Canvasの上端からの距離を指定する。 ・Left: Canvasの左端

          C#(WPF)勉強メモ5-Canvasコントロール

          C#(WPF)勉強メモ-ObservableCollection

          1. はじめに  C#勉強メモでは、筆者が学んだことをまとめたものである。今回は、WPFのObservableCollectionについてまとめる。 2. ObservableCollectionとは  ObservableCollectionとは、コレクション内のアイテムの追加、削除、変更時に、UIにその変更を通知する仕組みである。  WPFでは、UIと処理を結びつけるデータバインディングという仕組みがあり、それを活用することで、リアルタイムでUI側に反映できる。

          C#(WPF)勉強メモ-ObservableCollection

          C#勉強メモ-ファクトリーパターン

          1. はじめに  C#勉強メモとは、筆者が学んだことをまとめたものである。今回は、ファクトリーパターンを使用した通信処理の例題を作成する。 2. ファクトリーパターンとは  ファクトリパターンとは、オブジェクトの生成処理をカプセル化するパターンである。このパターンを使用することで、呼び出し側は、クラスの生成方法を深く知らなくてもオブジェクトを利用できる。  ファクトリーパターンの特徴は、オブジェクトの生成ロジックをファクトリークラスが行う。例えば、ファクトリークラスか

          C#勉強メモ-ファクトリーパターン

          C#勉強メモ-非同期処理を実行する

          1. はじめに  C#勉強メモでは、筆者が勉強した内容をまとめたものである。今回は、async-awaitに関してまとめる。 2. 同期処理と非同期処理  同期処理と非同期処理に関して整理する。 2.1 同期処理  同期処理とは、ある処理が完了するまで、次の処理に進まない処理方式である。例えば、コンソールからの入力待ちである。 Console.ReadLine();//入力するまで処理が進まない  C#のReadLineは、コンソールから文字を入力する関数である

          C#勉強メモ-非同期処理を実行する

          C#(WPF)勉強メモ-Dispatcher.BeginInvoke

          1. はじめに  C#勉強メモでは、筆者が学んだことをまとめたものである。今回は、WPFのDispatcher.BeginInvokeについてまとめる。 2. UIスレッドとは  UIスレッドとは、GUIの描画やイベント処理などを担当するスレッドである。例えば、ラベルやボタンなどの描画やクリックイベントなどである。基本的に、XAMLにコントロールとプロパティを記述し、コードビハインドでロジック部を記述する。  各コントロールへのアクセスを、UIスレッド以外から行う場合

          C#(WPF)勉強メモ-Dispatcher.BeginInvoke

          C#勉強メモ-シングルトンパターン

          1. はじめに  C#勉強メモでは、筆者が勉強した内容をまとめたものである。今回は、シングルトンパターンについて取り上げる。 2. データを共有する方法  シングルトンパターンについて考える前に、グローバル変数について考える。  プログラミング言語(例、C言語)によっては、グローバル変数を用いた実装方法が使われる。グローバル変数とは、ある変数をどこからでもアクセスし、変更することができるものである。  例えば、RPGでプレイヤー情報を表すデータがあるとする。 レベ

          C#勉強メモ-シングルトンパターン

          C#勉強メモ-継承とポリモーフィズム

          1. はじめに  C#勉強メモでは、筆者が学んだトピックをまとめたものである。今回は、継承とポリモーフィズムについてまとめる。 2. クラスの限界  まず、クラスで実現できる限界を考える。  クラスとは、データとメソッドをセットにして定義したものである。 class TestClass{ public int data; public void Method() { //処理 }}  この例は、C#によるクラス定義の例である。

          C#勉強メモ-継承とポリモーフィズム

          C#勉強メモ-クラス

          1. はじめに  C#勉強メモでは、筆者が学んだ内容をまとめている。今回は、クラスについて取り上げる。 2. カプセル化と情報隠蔽  クラスを知るうえで、情報隠蔽とカプセル化について整理する。 2.1 カプセル化(Encapsulation)  カプセル化とは、データとメソッドをクラスなどの単位にまとめることである。さらに、データの変更をメソッドを通じて変更することで、データの安全性を保つ。  C#では、データと関数(メソッド)をクラスという単位にまとめることで、

          C#勉強メモ-クラス

          C#(WPF)勉強メモ6-INotifyPropertyChanged を使った画面更新の手順

          1. はじめに  勉強メモでは、WPFに関する勉強内容をまとめたものである。今回は、INotifyPropertyChangedを使用した、画面の更新処理の手順をまとめる。 2. バインディングとは  WPFで画面の表示内容を更新するには、INotifyPropertyChangedインタフェースを使用する。このインタフェースは、プロパティの変更があった場合に、それを画面に反映する。  画面の表示内容を更新するには、「バインディング」について知っておくとよい。バインデ

          C#(WPF)勉強メモ6-INotifyPropertyChanged を使った画面更新の手順

          WEB開発で遭遇した先祖返りの体験談

          1. はじめに  ソフトウェアは、世間の情勢によって日々進化していく。例えば、携帯電話では、新機能をリリースする場合は機能追加、バグがある場合は、バグ修正をソフトウェア上でアップデートする。  今回は、修正したはずのソフトが過去の状態に戻る先祖返りの体験談を取り上げる。 2. 先祖返りとは  先祖返りとは、修正したはずのソフトが過去の状態に戻ることである。例えば、「修正したコードを適用するはずが、古いコードを適用してしまった」というケースだろう。  「そんなことある

          WEB開発で遭遇した先祖返りの体験談