ブログ 2023/01/14 【C# 12 候補】IEnumerable 向けリスト パターン C# vNext (12 候補)紹介シリーズ。 今日はリスト パターンがらみ。 提案ドキュメント: List patterns on enumerables (この当時から、リスト パターンの文法には結構変更あり) 直近の Language Design Meeting ノート C# 11 のときの話 C# 11 でリスト パターンが入りました。 is [] みたいに、[] を使って配列とか List<T> に対するパターン マッチを行います。 ただ、C# 1… 続きを読む 2023/01/11 【C# 12 候補】ラムダ式のデフォルト引数と params 引数 そろそろ、C# vNext 候補で上がってるものをちらほら紹介していこうかと。 今日は割かし確度高そうなものとして、ラムダ式がらみの話。 ラムダ式でもデフォルト引数と params への対応を考えているそうです。 提案ドキュメント: Optional and parameter array parameters for lambdas and method groups ※追記: 後から気づきましたが、この機能は Visual Studio 17.5 Preview 2 (20… 続きを読む 2022/12/30 JSON とかの中身確認ツール 今日は、「主に自分が使う用ツールを Blazor WebAssembly で作って Static Web Apps に置いたよ」系の話を一応ブログ化。 ソースコード Static Web App よくある「JSON とかのデータの中身を確認するツール」です。 しばらく、JSON と MessagePack の読み書きをするコードを書いてて、 デバッグがしんどくなって作ったのがこのツール。 いろんな形式を同時に扱うことがニッチ需要なのであんまり自分の需要にあったツー… 続きを読む 2022/12/20 必ず、かの邪知暴虐の T4 を除かねばならぬと決意した 個人的に、前々から「T4 は将来性が見えなさ過ぎてもう使うのやめたい」と言い続けていたわけですが、 最近ようやく自分が保守している T4 を全部別の手段で書き換えたので、 今日はそれの話。 T4 (Text Template Transformation Toolkit) テキスト テンプレートというと、ひな形的なテキストを簡易な文法で生成するようなものです。 例えば、 public static bool TryParse(this string s, out {{T}} x)… 続きを読む 2022/12/18 Unsafe クラスの敗北 (関数ポインター) Gist に書き捨ててたコードの供養ブログ シリーズ、 今日のは特に人を選ぶやつ。 今日は C# 9 で入った 関数ポインター がらみの話です。 Unsafe クラス C# の unsafe 機能、例えばポインターとかは、なかなか制限がきついです。 そのため、「実は .NET の型システム的にはできる」というものでも、 C# で書くことはできないことが結構あります。 それに対して、 .NET Core 以降、 Unsafe (System.Runtime.CompilerSer… 続きを読む 新しい投稿へ 過去の投稿へ
2023/01/14 【C# 12 候補】IEnumerable 向けリスト パターン C# vNext (12 候補)紹介シリーズ。 今日はリスト パターンがらみ。 提案ドキュメント: List patterns on enumerables (この当時から、リスト パターンの文法には結構変更あり) 直近の Language Design Meeting ノート C# 11 のときの話 C# 11 でリスト パターンが入りました。 is [] みたいに、[] を使って配列とか List<T> に対するパターン マッチを行います。 ただ、C# 1… 続きを読む
2023/01/11 【C# 12 候補】ラムダ式のデフォルト引数と params 引数 そろそろ、C# vNext 候補で上がってるものをちらほら紹介していこうかと。 今日は割かし確度高そうなものとして、ラムダ式がらみの話。 ラムダ式でもデフォルト引数と params への対応を考えているそうです。 提案ドキュメント: Optional and parameter array parameters for lambdas and method groups ※追記: 後から気づきましたが、この機能は Visual Studio 17.5 Preview 2 (20… 続きを読む
2022/12/30 JSON とかの中身確認ツール 今日は、「主に自分が使う用ツールを Blazor WebAssembly で作って Static Web Apps に置いたよ」系の話を一応ブログ化。 ソースコード Static Web App よくある「JSON とかのデータの中身を確認するツール」です。 しばらく、JSON と MessagePack の読み書きをするコードを書いてて、 デバッグがしんどくなって作ったのがこのツール。 いろんな形式を同時に扱うことがニッチ需要なのであんまり自分の需要にあったツー… 続きを読む
2022/12/20 必ず、かの邪知暴虐の T4 を除かねばならぬと決意した 個人的に、前々から「T4 は将来性が見えなさ過ぎてもう使うのやめたい」と言い続けていたわけですが、 最近ようやく自分が保守している T4 を全部別の手段で書き換えたので、 今日はそれの話。 T4 (Text Template Transformation Toolkit) テキスト テンプレートというと、ひな形的なテキストを簡易な文法で生成するようなものです。 例えば、 public static bool TryParse(this string s, out {{T}} x)… 続きを読む
2022/12/18 Unsafe クラスの敗北 (関数ポインター) Gist に書き捨ててたコードの供養ブログ シリーズ、 今日のは特に人を選ぶやつ。 今日は C# 9 で入った 関数ポインター がらみの話です。 Unsafe クラス C# の unsafe 機能、例えばポインターとかは、なかなか制限がきついです。 そのため、「実は .NET の型システム的にはできる」というものでも、 C# で書くことはできないことが結構あります。 それに対して、 .NET Core 以降、 Unsafe (System.Runtime.CompilerSer… 続きを読む