ブログ 2018/01/21 Pickup Roslyn 1/21 今日は coreclr, corefxlab, designs から1件ずつ、計3つ。 C# スクリプトの実用 Update clr-configuration-knobs.md, add new C# csi.exe based script for xplat document generation #15858 なんかドキュメント生成系のスクリプトを1個、sh から C# スクリプトに置き換えてみるのを試したいらしい。 曰く、 典型的なスクリプト作業がどの程度効率化す… 続きを読む 2018/01/21 GetUnicodeCategory(int codePoint) を提案してみた 今日は、.NET で、U+10000 以上のコードが割り当たってる文字の Unicode カテゴリー判定をする方法について。 提案を出したらそのままプルリクを出すことになった話。 背景 U+10000 以上の文字 Unicode について詳細は、昔書いた記事があるのでそちらを参照。 Unicodeとは? その歴史と進化、開発者向け基礎知識 Unicodeと、C#での文字列の扱い ここではさらっと。 U+10000 以上に割り当たってる文字は、要するに、以下のようなものです… 続きを読む 2018/01/08 await って言う単語 C# 5.0で非同期メソッドが導入されてから、 正式リリースを基準にしても5年以上、 最初の発表からだと7年以上経っています。 で、5年経っても、「なんて読むの」「asyncのaとawaitのaは違う」などなどが「定番ネタ」として定期的に出てくるわけですが。 特に、ECMAScript 2017がasync/awaitを導入したり、 Unity 2017がやっとC#のバージョンを6.0に上げれる感じになってきたり、 5年の断絶を経て去年からasync/awaitに触れる人が増えている… 続きを読む 2018/01/03 ピックアップRoslyn 1/3: Regex パーサー / C# 7.2 fixes なんかこう、GitHub リポジトリのwatchとかしてると、 だいたいアメリカのホリデーシーズンに合わせて自分まで「もう休み」な気分になってしまい。 要するに、12月20日前後にはもう休み気分で。 代わりに1月は2日から仕事に復帰してる感じの人が多く、休みあけた気分に。 Regex パーサー 事の発端は、「C# に Regex リテラルを入れてくれ」とかいう、まあ、芽がない提案なんですが。 issue 自体はだいぶ前からあるものなんですが、ホリデー前後あたりからなぜか再燃。 「芽… 続きを読む 2017/12/17 コピー禁止(non-copyable)構造体アナライザー 書き換えられる(mutable)構造体を作ると事故る問題を解決するためにアナライザー作りました。 mutable 構造体 一般論としては、構造体を mutable に作ると事故ります。 要するに、「書き換えたつもりが、実は書き換えてたのはコピーであって元の値は書き換わってない」的なやつ。 なので、たいていの場合は「構造体は immutable(書き換え不能)に作れ」という指針になります。 その一方で、まれに、ヒープ確保を避けるために mutable な構造体を作りたい場合があります。 … 続きを読む 新しい投稿へ 過去の投稿へ
2018/01/21 Pickup Roslyn 1/21 今日は coreclr, corefxlab, designs から1件ずつ、計3つ。 C# スクリプトの実用 Update clr-configuration-knobs.md, add new C# csi.exe based script for xplat document generation #15858 なんかドキュメント生成系のスクリプトを1個、sh から C# スクリプトに置き換えてみるのを試したいらしい。 曰く、 典型的なスクリプト作業がどの程度効率化す… 続きを読む
2018/01/21 GetUnicodeCategory(int codePoint) を提案してみた 今日は、.NET で、U+10000 以上のコードが割り当たってる文字の Unicode カテゴリー判定をする方法について。 提案を出したらそのままプルリクを出すことになった話。 背景 U+10000 以上の文字 Unicode について詳細は、昔書いた記事があるのでそちらを参照。 Unicodeとは? その歴史と進化、開発者向け基礎知識 Unicodeと、C#での文字列の扱い ここではさらっと。 U+10000 以上に割り当たってる文字は、要するに、以下のようなものです… 続きを読む
2018/01/08 await って言う単語 C# 5.0で非同期メソッドが導入されてから、 正式リリースを基準にしても5年以上、 最初の発表からだと7年以上経っています。 で、5年経っても、「なんて読むの」「asyncのaとawaitのaは違う」などなどが「定番ネタ」として定期的に出てくるわけですが。 特に、ECMAScript 2017がasync/awaitを導入したり、 Unity 2017がやっとC#のバージョンを6.0に上げれる感じになってきたり、 5年の断絶を経て去年からasync/awaitに触れる人が増えている… 続きを読む
2018/01/03 ピックアップRoslyn 1/3: Regex パーサー / C# 7.2 fixes なんかこう、GitHub リポジトリのwatchとかしてると、 だいたいアメリカのホリデーシーズンに合わせて自分まで「もう休み」な気分になってしまい。 要するに、12月20日前後にはもう休み気分で。 代わりに1月は2日から仕事に復帰してる感じの人が多く、休みあけた気分に。 Regex パーサー 事の発端は、「C# に Regex リテラルを入れてくれ」とかいう、まあ、芽がない提案なんですが。 issue 自体はだいぶ前からあるものなんですが、ホリデー前後あたりからなぜか再燃。 「芽… 続きを読む
2017/12/17 コピー禁止(non-copyable)構造体アナライザー 書き換えられる(mutable)構造体を作ると事故る問題を解決するためにアナライザー作りました。 mutable 構造体 一般論としては、構造体を mutable に作ると事故ります。 要するに、「書き換えたつもりが、実は書き換えてたのはコピーであって元の値は書き換わってない」的なやつ。 なので、たいていの場合は「構造体は immutable(書き換え不能)に作れ」という指針になります。 その一方で、まれに、ヒープ確保を避けるために mutable な構造体を作りたい場合があります。 … 続きを読む