C#

C#で英語っぽく条件分岐を記載する

備忘録です。 C#ではリテラルとの比較で is や not といった構文が使用できます。 小規模アプリや使い捨てのツールなどでは、bool変数で IsRunning としてよいかなと思います。 アプリケーション規模が大きくなるようであれば、可読性を意識して Enum で状態…

Maui BlazorでRazor ClassLibを使ってコンポーネントをプロジェクト分離する

昨今の.NETのUIフレームワークで一番熱いものはBlazorなんじゃないかと思っています。 Webはもちろん、デスクトップやモバイルでもMaui BlazorによってiOSやAndroid、macOS、WindowsなんかもBlazorでUI定義が出来ます。 ここ最近の.NETはUIフレームワークが…

SqlBulkCopyを実行してくれるコマンドレットを作って公開しました。

高速にテーブルへのデータ登録をおこなうことが出来る SqlBulkCopy をラップしたコマンドレットを自作して公開しました。 github.com www.powershellgallery.com どんなツール? サポートされたフォーマットのCSVとテーブル名を渡して実行するとCSVの値がテ…

IEnumerable<T>とDataTableの変換の仕方

現在、個人的なツール開発にてDataTable型を扱うような処理を作成していたのですが、普段の処理ではDataTable型を直接扱わずに任意のクラスのリスト(IEnumerable<T>)型で扱いたいです。 そこで、ChatGPTを駆使しながら、IEnumerable<T>型とDataTable型の相互変換</t></t>…

C#のTop-Level Statementでハマった話

.NET5.0のコンソールアプリケーションを.NET6.0にアップグレードしてTop-Level Statementを利用しようとしたときに起きた問題です。 最上位レベルのステートメントが含まれているファイルには、そのファイルの最後の最上位レベルのステートメントの後に、名…

C# 9.0 の record 型 と DDD の値オブジェクトについて

.NET 5 のリリースにより、 C# 9.0 が使えるようになりました。 C# 9.0 の新機能の中で注目を浴びている機能として record 型があります。 この record 型がドメイン駆動設計の値オブジェクトの設計に有用だという知見を得たので、この知見について記したい…

dotnet core tool でパスワード付き ZIP 圧縮ツール作ってみた

最近巷では dotnet core tool というものが流行っている?のを知りました。 docs.microsoft.com 一言でいうと、 npm global tool です。 Console App で作ったツールを NuGet に公開したりして使えます。 私は以前こんな記事を書きました。 neko3cs.hatenabl…

PowerShell Binary Module を作ってみた

2024/2/26追記 こちらのブログで作成したコードはコマンドツールとしてリメイクしました。 github.com ちなみに、作成したツールの記事は以下になります。 www.neko3cs.net 最近 PowerShell での自動化がマイブームです。 ちょっとしたツールとかも PowerShe…

C#のTaskと非同期処理についてまとめる

最近非同期処理関係で詰まるところがあったので、頭の整理も兼ねてまとめたいと思います。 Taskとは C#のTaskとはTaskです。 これ自体は非同期処理でもなんでもない、ただの処理の手順書に過ぎません。 // 返ってきてるのはHTTP GETするという手順のみ Task<HttpResponseMessage> </httpresponsemessage>…

LINQのススメ

LINQが登場して10年、LINQはかなり熟成、安定した技術になっています。 ですが、新規C#erやC#2.0で知識が止まっている人などおり、布教活動に休みはありません。 そんな迷える子羊達にLINQの教えを唱えます。 LINQとは LINQは統合言語クエリ(Language INteg…

C# 7.0 構文まとめ

C#

C#ってどんどん進化していくので意外と知らない構文があったりします。 特に最新のC# 7.0は業務で使用出来ない都合上知らない構文ばかりです。 なので、今の段階で最新構文のうち実用性の高そうなものをまとめておこうと思います。 outパラメータ付き引数で…