ブログ 2023/06/20 .NET の文字列比較でカルチャー未指定を検知する 先日の C# 配信で、 「これはブログに書いておくと助かる人がいるんじゃないか」と言われたものをブログ化。 背景: カルチャー依存問題再び うちのブログでも何回か書いてるんですが、 .NET の文字列比較は、カルチャー依存比較するものと Ordinal (文字コード通り)比較するものが混在していて、なかなかにやばいです。 .NET のカルチャー依存 API 問題 忘れがちなカルチャー依存問題 例えば以下のようなやつ。 using static System.Consol… 続きを読む 2023/03/18 忘れがちなカルチャー依存問題 今日は、「Globalization Invariant Mode」に変更したら、意外と忘れがちなところで差が出たみたいな話。 Globalization Invariant Mode 以前に1回ブログに書いてるんですが、 .NET の文字列 API にはカルチャー依存なものが多くて、 例えば 1.2.ToString() すらカルチャー依存です。 大陸ヨーロッパだと小数点を , にすることが多く、そのあたりの OS でこの ToString を実行すると "1,2"… 続きを読む 2023/03/11 C# での破壊的変更の今後の扱い(案) C# は、進化していくにあたって、破壊的変更を極力起こさないようにかなり気を使っているプログラミング言語です。 細かい話をすると破壊的変更も皆無ではないんですが、 破壊的変更を認める(認めてでも追加したい新機能を実装する)ハードルは結構高めです。 そんな C# ですが、ちょっとそのハードルの基準を緩められないかというような話が出ています。 Dealing with limited breaking changes in C# その後の Design Meeting 議事録 補… 続きを読む 2023/03/05 【C# 12 候補】 Extensions 今日は「拡張」(拡張メソッド的なものの改良)の話。 (今日のこれは、C# 12 で全て実装されるかどうか怪しく、 一部 13 以降になる可能性も結構高いです。) 提案ドキュメント: Extension types Working Group 議事録 2022/11/10 2023/1/23 2023/1/25 2023/2/15 結構昔から、 Extension everything: 拡張メソッドと同じような仕組みでプロパティ、インデクサー、演算… 続きを読む 2023/02/12 【C# 12 候補】params Span、改め、params ReadOnlySpan 今回は params の話。 Working Group 議事録 2022/10/25 2022/11/3 params の改善話は紆余曲折ありまして。 去年の時点では params Span<T> で検討されていました。 ちょこっとだけマイナーチェンジされまして、現在は params ReadOnlySpan<T> です。 いろんな型で params 案(没) 現在の C# の params (可変長引数)は、params T[]… 続きを読む 新しい投稿へ 過去の投稿へ
2023/06/20 .NET の文字列比較でカルチャー未指定を検知する 先日の C# 配信で、 「これはブログに書いておくと助かる人がいるんじゃないか」と言われたものをブログ化。 背景: カルチャー依存問題再び うちのブログでも何回か書いてるんですが、 .NET の文字列比較は、カルチャー依存比較するものと Ordinal (文字コード通り)比較するものが混在していて、なかなかにやばいです。 .NET のカルチャー依存 API 問題 忘れがちなカルチャー依存問題 例えば以下のようなやつ。 using static System.Consol… 続きを読む
2023/03/18 忘れがちなカルチャー依存問題 今日は、「Globalization Invariant Mode」に変更したら、意外と忘れがちなところで差が出たみたいな話。 Globalization Invariant Mode 以前に1回ブログに書いてるんですが、 .NET の文字列 API にはカルチャー依存なものが多くて、 例えば 1.2.ToString() すらカルチャー依存です。 大陸ヨーロッパだと小数点を , にすることが多く、そのあたりの OS でこの ToString を実行すると "1,2"… 続きを読む
2023/03/11 C# での破壊的変更の今後の扱い(案) C# は、進化していくにあたって、破壊的変更を極力起こさないようにかなり気を使っているプログラミング言語です。 細かい話をすると破壊的変更も皆無ではないんですが、 破壊的変更を認める(認めてでも追加したい新機能を実装する)ハードルは結構高めです。 そんな C# ですが、ちょっとそのハードルの基準を緩められないかというような話が出ています。 Dealing with limited breaking changes in C# その後の Design Meeting 議事録 補… 続きを読む
2023/03/05 【C# 12 候補】 Extensions 今日は「拡張」(拡張メソッド的なものの改良)の話。 (今日のこれは、C# 12 で全て実装されるかどうか怪しく、 一部 13 以降になる可能性も結構高いです。) 提案ドキュメント: Extension types Working Group 議事録 2022/11/10 2023/1/23 2023/1/25 2023/2/15 結構昔から、 Extension everything: 拡張メソッドと同じような仕組みでプロパティ、インデクサー、演算… 続きを読む
2023/02/12 【C# 12 候補】params Span、改め、params ReadOnlySpan 今回は params の話。 Working Group 議事録 2022/10/25 2022/11/3 params の改善話は紆余曲折ありまして。 去年の時点では params Span<T> で検討されていました。 ちょこっとだけマイナーチェンジされまして、現在は params ReadOnlySpan<T> です。 いろんな型で params 案(没) 現在の C# の params (可変長引数)は、params T[]… 続きを読む