滅入るんるん

何か書きます

【C#】readonly structの値をメンバーメソッドを呼んで変更しているように見せる方法

C#

C#のreadonly structはフィールドすべてにreadonly制約を掛けることによって防衛的コピーを防げる素晴らしい機能ですが、その反面readonlyなため値の書き換えができなくなります。(※C#コードコンパイル時の話、リフレクション先輩のことは考えないでください…

【C#】構造体の防衛的コピーについて

以前すこし話に触れた構造体の防衛的コピーについてCIL的に見ていこうという記事です。 以前触れた記事: [C#]Big Size Structが値コピーでつらいならin引数で値コピーしなければいいじゃない!! < それ本当? 防衛的コピーとは 構造体の値がreadonlyではな…

【C#】SharpLabを使ってCILを見る

前回・前々回とCILを見るツールを紹介してきたので、SharpLabを紹介しないわけにはいかないだろうということで紹介しておきます。前回: [C#]ILSpyを使ってCILを見る前々回: [C#]ReSharperを使ってCILを見る SharpLabはWebサイト上でC#のコードがコンパイル後…

【C#】ILSpyを使ってCILを見る

前回の記事でReSharperを使ってCILを見てみましたが、ReSharperを利用すると該当ファイルのCILしか見れず、アセンブリ情報などのCILは見れませんでした。前回記事:[C#]ReSharperを使ってCILを見る そこで、ReSharper購入以前に使っていたILSpyを使って見よ…

【C#】ReSharperを使ってCILを見る

こないだセールで買ったReSharperですが、さっそくReSharperの機能をことごとくオフにしていってしましました。(決してReSharperが重いということはない(建前)けど、VisualStudio標準のサジェストとかが優秀になってきたからそのあたりはわざわざReSharperじ…

Xamarin.iOSならExpressionよりリフレクションのほうが早いかもという話

元ネタはこちら: うさ☆うさ日記 - [C#]Xamarin.iOSでLambdaExpression.Compile()が通る件 最初に断っておきますが結構雑なベンチマーク計測してます そこで、本題の件に入る前に技術的背景。 C#でのメタプログラミングにはいろいろと方法があって、この話に…

ReSharper買いました

突然ですが、JetBrainsが半額セールをしてました。 国際フレンドシップ・デー。世界中のプログラマーへJetBrainsからのプレゼント期間限定でJetBrains IDEのパーソナルライセンスが50%OFF!https://t.co/Rt22HOt5WV pic.twitter.com/PDlD4wMEE8 — JetBrai…

.NET Core 2.1でstring.StartsWithが遅くなることがある話

個人的にstring.StartsWith系統どれが一番早いの選手権開きたかったので、いろいろと計測していたのですが、どうも .NET Core 2.1だけ異常に遅い場合があるという発見をしたのでメモです。 計測したのはいつも通りBenchmarkDotNetです。計測対象は以下のコー…

ブログテーマ変えました

気まぐれでブログテーマ変えました。 以前から少し読みにくいなーと感じてたところなので、ちょうどいい機会だった感じです。 デザインとかはBloggerのテーマのNotableをそれなりに改造したものです。 レイアウト崩れとかあったらご連絡お願いしますm(__)m (…

【C#】Xamarin.FormsのApplication.Current.Propertiesより高性能な設定保存ライブラリ作った話

タイトルは半分釣りです(ごめんなさい)(半分大真面目) 【告知】Xamarin.Formsのhttps://t.co/eC46vr1kqiを強くしたようなもの(自称)としてSharedPropertyを公開しました~内部的にはUtf8JsonかSpanJsonを使うようにしてます。.NET Standard 2.0で作ってるの…