ブログ 2018/12/04 RuntimeFeature クラス 先日 C# 8.0 予告なブログで書いた通り、 C# 8.0 で入るインターフェイスのデフォルト実装は .NET ランタイム側の修正が必要な機能です。 今日は、そういう「ランタイム側機能」についての話を少し。 ランタイム側機能 C# の言語機能は、C# コンパイラーがちょこっと頑張ってよい具合にコード生成して、 古い .NET Framework ランタイム上でも動くものが多いです。 「古いランタイム上では動かない新機能」というと、実は .NET Framework 2.0 でのジェ… 続きを読む 2018/12/03 Directory.Build.* なんか、Gist に書き捨ててそのまま放置なものが結構増えてきたので、 しばらくそれを元にブログに起こしていこうかという気分に。 ここ2年くらい、.NET Core や C# のテーマの1つがパフォーマンス改善だったせいもあって、だいぶ Unsafe でだいぶきわどい最適化の話が多めになるとは思います… (ちなみに、今日のは全然その系統ではなく、きわどさもない話。) Directory.Build.* Visual Studio 2017 の頃から、所定のフォルダー以下にあるすべての… 続きを読む 2018/12/02 タプル要素名の大文字・小文字 タプルの要素名は(int x, int y) みたいに camelCase (先頭小文字) で書くべきか、 (int X, int Y) みたいに PascalCase (先頭大文字) で書くべきか、 割かし最近、この問題が再燃してたりしました。 背景1: C# のコーディング規約 大体のプログラミングでは、別に大文字・小文字に意味があるわけではなく、 x と書こうが X と書こうが原理的には自由です。 しかし、実践的には、「その言語の標準ライブラリ辺りに合わせる」というのが一般的か… 続きを読む 2018/12/01 ピックアップRoslyn 12/1 10月31日~11月28日当たりの Design Notes 追加。 Added: LDM notes for Oct. 31, Nov. 5, and Nov. 14 #2032 Added: LDM Notes for Nov. 28, 2018 #2033 ちなみにこの辺りの実装、pull request を探してみたら Milestone が 16.0.P2になっているものが結構あって、近々出てくれそうな Visual Studio 16 Preview 1 ではまだ入って… 続きを読む 2018/11/14 C# 8.0 の予告 一昨日、C# 8.0 に関するブログが出たわけですが。 Building C# 8.0 個人的には「最近全然ブログ書かない C# チームが働いただと…」的な感想もあるんですが (C# 7.3 のときとか「半年前にリリースしてたわ」みたいなブログでした)。 近々プレビュー版が公開されるであろう C# 8.0 の予告記事です。 Visual Studio 15.9 正式リリースに続いて近々、Visual Studio 16.0 のプレビュー版も公開されて、 それと一緒に .NET… 続きを読む 新しい投稿へ 過去の投稿へ
2018/12/04 RuntimeFeature クラス 先日 C# 8.0 予告なブログで書いた通り、 C# 8.0 で入るインターフェイスのデフォルト実装は .NET ランタイム側の修正が必要な機能です。 今日は、そういう「ランタイム側機能」についての話を少し。 ランタイム側機能 C# の言語機能は、C# コンパイラーがちょこっと頑張ってよい具合にコード生成して、 古い .NET Framework ランタイム上でも動くものが多いです。 「古いランタイム上では動かない新機能」というと、実は .NET Framework 2.0 でのジェ… 続きを読む
2018/12/03 Directory.Build.* なんか、Gist に書き捨ててそのまま放置なものが結構増えてきたので、 しばらくそれを元にブログに起こしていこうかという気分に。 ここ2年くらい、.NET Core や C# のテーマの1つがパフォーマンス改善だったせいもあって、だいぶ Unsafe でだいぶきわどい最適化の話が多めになるとは思います… (ちなみに、今日のは全然その系統ではなく、きわどさもない話。) Directory.Build.* Visual Studio 2017 の頃から、所定のフォルダー以下にあるすべての… 続きを読む
2018/12/02 タプル要素名の大文字・小文字 タプルの要素名は(int x, int y) みたいに camelCase (先頭小文字) で書くべきか、 (int X, int Y) みたいに PascalCase (先頭大文字) で書くべきか、 割かし最近、この問題が再燃してたりしました。 背景1: C# のコーディング規約 大体のプログラミングでは、別に大文字・小文字に意味があるわけではなく、 x と書こうが X と書こうが原理的には自由です。 しかし、実践的には、「その言語の標準ライブラリ辺りに合わせる」というのが一般的か… 続きを読む
2018/12/01 ピックアップRoslyn 12/1 10月31日~11月28日当たりの Design Notes 追加。 Added: LDM notes for Oct. 31, Nov. 5, and Nov. 14 #2032 Added: LDM Notes for Nov. 28, 2018 #2033 ちなみにこの辺りの実装、pull request を探してみたら Milestone が 16.0.P2になっているものが結構あって、近々出てくれそうな Visual Studio 16 Preview 1 ではまだ入って… 続きを読む
2018/11/14 C# 8.0 の予告 一昨日、C# 8.0 に関するブログが出たわけですが。 Building C# 8.0 個人的には「最近全然ブログ書かない C# チームが働いただと…」的な感想もあるんですが (C# 7.3 のときとか「半年前にリリースしてたわ」みたいなブログでした)。 近々プレビュー版が公開されるであろう C# 8.0 の予告記事です。 Visual Studio 15.9 正式リリースに続いて近々、Visual Studio 16.0 のプレビュー版も公開されて、 それと一緒に .NET… 続きを読む