ブログ 2025/01/03 First-class な Span 型 「Rosly の Language Feature Status に並んでいるもののうち、すでに preview 提供済みのものシリーズ第2段。 field キーワード First-class Span ← 今日はこれ nameof(T<>) すでに今、LangVersion に preview を指定すれば利用可能です。 今日は First-class Span。 (これも昔1回取り上げてるんですが、案外書くことあり。) First-class Span C… 続きを読む 2025/01/02 field キーワード 「Rosly の Language Feature Status にこの1・2か月で結構更新かかったね」という話題もたびたびあり、その辺りの話を。 Language Feature Status に並んでいるもののうち、いくつかは preview として現時点でもうすでに取り込まれています。 field キーワード ← 今日はこれ First-class Span nameof(T<>) 今(執筆時、Visual Studio 17.13.0 Preview 2.1… 続きを読む 2025/01/01 UTF8 か Utf8 か 今日は C# 配信をやっててちょくちょく話題になるやつの話。 using System.Text; using System.Text.Unicode; var buffer = (stackalloc byte[3]); Utf8.FromUtf16("abc", buffer, out var r, out var w); Encoding.UTF8.GetString(buffer[..w]); Utf8 なの? UTF8 なの? (昔1回同… 続きを読む 2024/12/25 (没) 数学準拠な剰余演算子 こないだにつづき、C# 言語機能としては没ネタ。 最終的な結論が「ライブラリでやれ」 → 「.NET 10 でメソッド追加を検討」です。 剰余の利用例 剰余演算(C# だと % 演算子)の用途として、 「配列の範囲内に収めるために index % array.Length する」とかがあると思います。 例えば以下のような感じ。 var table = new Table([1, 2, 3, 4, 5]); for (var i = 0; i < 5; i++) … 続きを読む 2024/12/19 (没) UTF-8 文字列補間 今日のは、C# 言語機能としては否決されたものの、ほぼ同等のものがライブラリと JIT 時最適化で実現されたという話になります。 ちなみに今日のこの話は .NET 8 の頃の話で、「そういえば去年書いてなかった」ネタになります。 UTF-8 リテラルがあるなら C# 11 で UTF-8 リテラルが入って、 C# プログラム中に UTF-8 なバイト列を ReadOnlySpan<byte> で直接埋め込めるようになりました。 ReadOnlySpan<byte&… 続きを読む 過去の投稿へ
2025/01/03 First-class な Span 型 「Rosly の Language Feature Status に並んでいるもののうち、すでに preview 提供済みのものシリーズ第2段。 field キーワード First-class Span ← 今日はこれ nameof(T<>) すでに今、LangVersion に preview を指定すれば利用可能です。 今日は First-class Span。 (これも昔1回取り上げてるんですが、案外書くことあり。) First-class Span C… 続きを読む
2025/01/02 field キーワード 「Rosly の Language Feature Status にこの1・2か月で結構更新かかったね」という話題もたびたびあり、その辺りの話を。 Language Feature Status に並んでいるもののうち、いくつかは preview として現時点でもうすでに取り込まれています。 field キーワード ← 今日はこれ First-class Span nameof(T<>) 今(執筆時、Visual Studio 17.13.0 Preview 2.1… 続きを読む
2025/01/01 UTF8 か Utf8 か 今日は C# 配信をやっててちょくちょく話題になるやつの話。 using System.Text; using System.Text.Unicode; var buffer = (stackalloc byte[3]); Utf8.FromUtf16("abc", buffer, out var r, out var w); Encoding.UTF8.GetString(buffer[..w]); Utf8 なの? UTF8 なの? (昔1回同… 続きを読む
2024/12/25 (没) 数学準拠な剰余演算子 こないだにつづき、C# 言語機能としては没ネタ。 最終的な結論が「ライブラリでやれ」 → 「.NET 10 でメソッド追加を検討」です。 剰余の利用例 剰余演算(C# だと % 演算子)の用途として、 「配列の範囲内に収めるために index % array.Length する」とかがあると思います。 例えば以下のような感じ。 var table = new Table([1, 2, 3, 4, 5]); for (var i = 0; i < 5; i++) … 続きを読む
2024/12/19 (没) UTF-8 文字列補間 今日のは、C# 言語機能としては否決されたものの、ほぼ同等のものがライブラリと JIT 時最適化で実現されたという話になります。 ちなみに今日のこの話は .NET 8 の頃の話で、「そういえば去年書いてなかった」ネタになります。 UTF-8 リテラルがあるなら C# 11 で UTF-8 リテラルが入って、 C# プログラム中に UTF-8 なバイト列を ReadOnlySpan<byte> で直接埋め込めるようになりました。 ReadOnlySpan<byte&… 続きを読む