10yroの開発日記

福岡にある株式会社10yro(トイロ)のエンジニアが書いています

C#

C# 12 新機能

C#

2023年にリリースされたC# 12の新機能について、簡単に纏めました。Visual Studio 2022で使用可能です。 C# 12の新機能は、コードの簡潔さと可読性の向上を目的としており、特に初期化やラムダ式のシンタックスが改善されています。 ただし、各機能の特性や…

C# 並列処理(Task)でパフォーマンスを改善する

システム開発ではパフォーマンス(ユーザーが操作を行ってからシステムが応答するまでの時間)の改善というのは避けて通れない道です。 例えば、ある処理を直列で実行しており、約2秒掛かっていたとします。 それを1秒以内で終わらせることが必要になった場…

マインスイーパーを作ってみた

お手頃なゲームを作りたいと思いお題を探したらふとマインスイーパーを思い出したので、C#で作ってみました。 昔はwindowsにも標準搭載されてたあれです。 まずはルール確認(wikipediaより引用 マインスイーパ - Wikipedia ) ゲーム画面は正方形のマスが敷き…

C# Pollyを使った回復力の高いAPIアクセス方法

Pollyとは、APIへのアクセス時のリトライの実装などを助けてくれるライブラリです。 Pollyを使えば、APIのアクセス時に問題が発生した場合に、自動的にリトライすることができます。 この記事では、C#でPollyを使った基本的なAPIアクセス方法について説明し…

C# SendGridのAPIを利用してメールを送信する

何かしらプログラムからSMTPサーバー経由でメールを送信することがあるかと思いますが、Microsoft365等のサービスだとスパム対策が強化され迷惑メールに振り分けられることが多くなったようです。 今回、自社HP(Wordpress)をリニューアルした際に、問い合…

C# Windows Hello認証の実装

みなさんご利用されていると思いますが、Windows 10や11にはWindows HelloというPINや顔認証、指紋認証の仕組みがあります。 そのWindows Helloでの認証をWindowsのアプリでも利用することができます。 今回はその実装方法についてです。言語はC#でWindows F…

C# PCSC Sharpを使ってICカードのIDを読み取る

今回はC#でICカードに入っているIDを取得する方法についてです。 ICカードリーダーとの連携は1から実装するのは気が遠くなりそうなので、今回はPCSC Sharpという以下のライブラリを利用しました。 ICカードはマイフェア(Myfair)、フェリカ(Felica)を想定して…

C# NLogを使ってログ出力する

今回はC#でログ出力する方法です。 以前は自前でクラスを作成することもあったかと思いますが、最近では自作することはほぼないかと思います。 今回はNLogというライブラリを使ってログ出力したいと思います。 nlog-project.org 事前準備1 事前準備2 設定 ロ…

C# Span<T>構造体と配列

C# 7.2以降で追加されたSpan<T>構造体や配列などに追加された演算子についての備忘録です。 Span<T>構造体 Span<T>構造体とは、配列などのデータが並んでいるものから一部を取り出して、値を読み書きするものです。 Span<T>構造体は、ref 構造体という参照型の構造体にな</t></t></t></t>…

C# 8.0 のswitch式について

switch式 C# 8.0から、switch式という機能が追加されました。 従来のswitch構文は、C言語の構文を踏襲したもので、ちょっと使いにくかったのですが、シンプルな式として書けるようになりました。 構文としては、以下のようになります。 変数 switch { パター…

C#でClosedXMLを使ってExcelを操作する

今回はC#でMicrosoft OfficeのExcelを利用する場合のサンプルです。 やり方はいくつかあるかと思いますが、今回はClosedXMLというパッケージを利用します。 ClosedXMLのインストール NuGetからClosedXMLをインストールします。 簡単ですね。 ExcelのBookを新…

C# WPFでOxyPlotを使って折れ線グラフを描画する

今回はC#のWPFで、OxyPlotを使って折れ線グラフを描画したいと思います。 折れ線グラフの横軸に時間(0時~23時)、縦軸は0~10のランダムな値を設定します。 事前準備 WPFのプロジェクトを作成し、NuGetでOxyPlot.Wpfをインストールします。 .NET.Core 3.1を…

C#でJsonを使う

C#でJson.NETを使用して、クラスをJsonに変換したり(シリアライズ)、Jsonをクラスに変換したり(デシリアライズ)する方法です。 www.newtonsoft.com 事前準備 Visual StudioでNewtonsoft.Jsonというパッケージをインストールしてください。パッケージのイ…