2023-03-01から1ヶ月間の記事一覧
ProcessXを使いたい。 参考:neue cc - ProcessX - C#でProcessを C# 8.0非同期ストリームで簡単に扱うライブラリ 標準のProcessクラスは、現代風でない使い心地であるほか、ハマりポイントもある。 参考:非同期外部プロセス起動で標準出力を受け取る際の注…
IDisposableな構造体について。アロケーションを避けるために構造体を使用したとしても、IDisposableインターフェースが噛む using ではbox化が発生するのでは――? との疑問も浮かぶが、具象で using するケースでは発生しない。(devirtualization? 違うか…
Spanの分解について。 本題の前に、スライシングに触れる。 とても快適だと思う。 // ReadOnlySpan<char> span; var s1 = span.Slice(1); // Slice メソッド var s2 = span[1..]; // 範囲演算子 var s3 = span.Slice(1, 3); // 長さで切るときは Slice の方がわか</char>…
【追記】 .NET 8 ではReadOnlySpan<char>.Split(Span<Range>, char, StringSplitOptions)とできる拡張メソッドが追加され、この記事でやりたかったようなことが標準で行えるようになっています。 ReadOnlySpan<char>ってSplitが無いんだ、と思ったことがあるのは自分だけではな</char></range></char>…
既存のバイナリファイルからの読取りをBinaryReaderクラスとシフト演算の組み合わせで行っているコードを見たのをきっかけに整理。 最初に、エンディアンの違いを実質考えなくてよいとき。まず普通なのは、BitConverterクラスを使うこと。 これは特筆なし。 …