【C#】for と foreach どっちを使うべき?
for の特徴 for は昔ながらのループ構文。インデックスを使って要素にアクセスします。 こんなときに便利 インデックスが必要なとき for (int i = 0; i < arr.Length; i++) { Console.WriteLine($"{i}...
View Article[Undo]c# unmanagedデータ用の差分Undo
はじめに なぜ私は連日Undoについての記事を書いているのか。数日前にコマンドパターンでUndoを実装しました。 実際使ってみると綺麗にコマンドにできる物がなく、メメントコマンドばかりを使うことになりました。 これではダメだと思い、そういえばc#は全てのオブジェクトサイズ...
View Article【リボン編】OutlookのCOMアドインでリボンのカスタマイズ
以前の内容に続いて、OutlookのCOMアドインについて今回はリボンのカスタマイズを行います。 【dll編】VSCodeでOutlookのCOMアドインをつくる 【インストーラー編】VSCodeでOutlookのCOMアドインをつくる 前回まではVisual Stud...
View Articleコードの常識、世界の非常識? C#数値フォーマット「N0」が秘める力
はじめに Web開発やアプリケーション制作において、数値を画面に表示する機会があります。 特に金額を表示する際、「12345円」よりも「12,345円」のように、 3桁区切りのカンマを入れることがほとんどだと思います。 概要: C#では、数値を文字列に変換する際に ...
View Article【C#入門】クラスってなに?
クラスとは? クラスは設計図のようなものです。 例えば「車」という設計図があれば、その設計図から「トヨタの車」「日産の車」など、実際の車(オブジェクト)を作ることができます。 クラス = 設計図 オブジェクト = 設計図から作った実体 C#でのクラスの書き方 「Ca...
View Article【C#】コンストラクタとは?
コンストラクタとは? コンストラクタとは、オブジェクトが作られるときに最初に実行される特別なメソッドのことです。 new でクラスからオブジェクトを作るときに呼ばれる 主に「初期設定」に使う イメージでいうと「新しい家を建てるときに最初から設置されている家具や設備」...
View Article【C#】アクセス修飾子とは?
アクセス修飾子とは? アクセス修飾子は クラスやメソッド、変数などに対して「公開範囲」を指定するキーワード です。 例えば「自分の家のドアの鍵」のようなもの。 誰でも入れる(public) 家族だけ入れる(protected) 自分だけ入れる(private) といっ...
View Article【C#】アクセス修飾子を省略したらどうなる?
クラスのデフォルト トップレベルのクラス(通常のクラス)を定義したとき、アクセス修飾子を省略すると internal になります。 class Person // ← internal がデフォルト { } 「同じプロジェクト内からは使えるけど、外部のプロジェクトから...
View Article【C#】なぜトップレベルクラスには public と internal しか使えないのか?
トップレベルクラスとは? まず「トップレベルクラス」とは、名前空間の直下に置かれるクラスのことです。 namespace MyApp { public class MyClass { } } 名前空間の中で直接宣言される 外側にさらにクラスは存...
View ArticleC# WPF HTTP通信サーバ エンドポイント処理
■概要 エンドポイントとして、HTTP通信の処理を行う 構成 StartServer() ├─ HttpListener.Start() ├─ [受信ループ起動] AcceptLoopAsync(_cts.Token) │ └─ loop: │ ...
View Article【Unityでとりあえず入れておけばいいモノを作りたい】シンプルなToast機能
はじめに Unityでとりあえず入れておけばいいモノを作りたい。 ということでシンプルなToast機能を作成しました。 簡潔なメッセージだがダイアログだと閉じる操作があるため表示して自動で消えてほしい。 そんなときに使用できるかもしれません。 機能 ・1行で簡潔にメッセ...
View Article【C#】型推論 var は使うべき?
var を使うメリット 1. コードがスッキリする 型名を繰り返す必要がなくなるため、冗長さを減らせます。 // varを利用しない Dictionary> dict = new Dictionary
View Article[C#勉] タイムアウト機能を考える
はじめに ここ半年ほどC#を使ってwindowsアプリを開発しています。 馴染みのない言語のため、日々勉強中です。 学習ログも兼ねつつ、 今後にも活かせるようにいくつかモジュール化できたらいいかもなーと考え、 検討の過程やコードを残せる範囲で残したいと思います。 今回の...
View Article【保険商品管理システムの開発】火災保険の見積もり計算を行うAPIコントローラーの解説(3)
3. Calculate メソッドの流れ 3. 基本保険料計算 Controllers/FireInsuranceController.cs var basePremium = (request.BuildingCoverage * 10000 + request.H...
View Article【C#】インスタンスとは?
クラスとインスタンスの関係 まずは簡単にイメージから クラス:設計図 インスタンス:設計図から作られた実際の“モノ” たとえば、「人間」というクラスがあったら、 「山田さん」や「田中さん」はそのクラスから作られたインスタンスです。 public class Per...
View Article【C#】プロパティとは?
プロパティとは? プロパティは、クラスの内部データ(フィールド)に安全にアクセスするための仕組みです。 つまり、「値の読み書きをコントロールする窓口」みたいなもの。 たとえば、こんなクラスがあったとします。 class Person { private strin...
View Article【C#】プロパティとフィールドの違い
フィールドとは フィールドは、クラスの中でデータを直接保持するための変数です。 たとえば class Player { public int hp; // フィールド } これは単純に「変数をクラスの中に置いただけ」。 外部からもこうしてアクセスできます Pla...
View Article依存性の注入(DI)って、結局なに? 🤔
※DIについて人に尋ねられた際、自分が十分に理解していないことに気づいたため、改めて学習を行いました。その過程で感じた疑問点や学習内容をもとに、架空の先輩・後輩キャラクターによる会話形式でアウトプットしてみました。依存性の注入(DI)初学者の理解に少しでも役立てば幸いです。...
View Article【Unity×WebSocket】WebSocketSharpで実装する接続・応答・再接続の最小構成ガイド
UnityでゲームやXRシステムを作成している際に、WebSocketAPIを使用してリアルタイム通信を実装したい時に便利なライブラリがあります。本記事では、WebSocketSharpライブラリを使用してリアルタイム通信を実装する方法について説明します。 バックエンド側...
View ArticleWPF × Basler pylon SDKで背景差分(動体検出)を実装する
WPF × Basler pylon SDKで背景差分(動体検出)を実装する ライブビューが動いたら、次は 「動いたところだけ強調表示」 をやってみましょう。 本記事では、簡単な 背景差分(Background Subtraction) で動体領域を抽出し、WPFの画面に...
View Article