ひでぼ~blog

C#ときどきゲーム

2020-01-01から1年間の記事一覧

C#のrecordとclassとstructを比較した

C#

C#9から登場したrecordで型が定義できるようになって、record、class、structなどよく分からなくなってきたので、いろいろ比較しつつ整理してみました。 class struct record 参照型 or 値型 参照型 値型 参照型 継承 できる できない できる Equals() 参照…

C#9.0のInit Only Setterを試す

C#

.NET 5がリリースされてC# 9.0モチベが高まったのでやってみました。 Init Only Setterを使うとImmutableな型を定義するのがラクになります。 C# 9.0以前の書き方 プロパティをget onlyにしてコンストラクタで各プロパティを初期化しないとダメでした。 clas…

VS2019のスタートページに開発者向けNewsを表示したい

VS2017はスタートページに開発者向け情報というMS関係の最新技術情報が表示されていました。 地味に好きな機能で、技術の動向をキャッチする貴重なソースだったのですがVS2019では無くなってしまいました。 VS2019でも表示できないかなと調べてみたら有志の…

Visual Studioのクイックアクションで生成されるフィールドの命名規則を変更する

コンストラクタで受け取った引数をフィールドに代入する時、Visual Studioのクイックアクション(電球ボタン)を使うとフィールドを定義して初期化するコードを自動で生成してくれます。 コンストラクタの引数にカーソルを当ててクイックアクションを押すと…

HTTPクッキーの有効期限について調べた

Web

ブラウザを閉じたときに消えるクッキーとそうじゃないクッキーの違いがよく分かっていなかったので調べました。 ブラウザを閉じたときに消えるクッキー セッションクッキーと呼ばれます。 クッキーはHTTPレスポンスヘッダーのSet-Cookieでサーバーからクライ…

Azure DevOpsのBoardsと開発作業を紐づけられるようにした

Azure DevOpsでGitのブランチとProduct Backlog Itemを紐づけて良い感じにタスク管理できたのでやり方をまとめました。 プロジェクトの作成 Azure DevOpsでプロジェクトを作成します。ソース管理はGit、プロジェクトのテンプレート(Work Item Process)は個人…

RxJSで格ゲーのキーディスプレイ的なものを作った

この記事を見かけて、Rxでコマンド判定やるの面白そうやんけ…!と思ってやってみました。 ただ、コマンド判定を作る以前に斜め入力やらを画面に表示する部分の実装だけでそこそこのボリュームになったので、この投稿では格ゲーのトレーニングモードでよくあ…

T-SQLのMERGEを試した

あるテーブルに対して、レコードがあればUPDATEし、なければINSERTするというのをMERGEを使ってやってみました。 UPSERTと呼ばれたりするやつですね。 準備 とりあえず適当なテーブルを作ります。本のタイトル、値段を管理するBookテーブルを作りました。初…

ASP.NET CoreでSwaggerUIを使ってみる

ASP.NET CoreでWebAPIのデバッグをしていてSwaggerUIがすごい便利だったので適当なプロジェクトを作ってSwaggerUIを表示するところまでをやってみます。 nugetパッケージの準備 ASP.NET Core 3.1で適当なWebAPIのプロジェクトを作成します。nugetパッケージ…

ConsoleAppFrameworkを試した

C#

仕事でちょっとしたコンソールアプリを作るときにDIやConfigurationの仕組みが欲しかったので試しに使ってみました。 github.com まずコンソールアプリケーションのプロジェクトを作成して、nugetパッケージの管理からConsoleAppFrameworkをインストールしま…

null許容参照型を試した

C#

なんとなくC#8のnull許容参照型を試したくなったのでコードを書いてみました。 手っ取り早く試したいのでcsprojを編集してプロジェクト丸ごとnull許容参照型を有効にしました。 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <Nullable>enable</Nullable> </PropertyGroup> </Project> いつもどおり適当なクラスを作ってみたのですが…

ASP.NET Core APIでXML形式のRequestを受け取る

ASP.NET CoreでWebAPIを作り、XML形式のRequestを受け取れるかを試してみました。 .NET Core 3.1、ASP.NET CoreでWebAPIのプロジェクトを作成します。 まずControllerとActionを用意します。 [Route("api/[controller]/[action]")] [ApiController] public c…

explicit演算子を試した

C#

C#でexplicitというキーワードを使うと()を使った明示的なキャストを定義できることを知ったので試してみました。 class Program { static void Main(string[] args) { var book = new Book { Id = 1, Name = "はじめてのC#", Price = 1200 }; var bookViewM…