ブログのカテゴリー:C

ピックアップRoslyn: C# 10.0 トリアージ

前回、前々回の続きというか、大きくなりすぎたので分けたのの続き。 C# Language Design Meeting for September 23rd, 2020 C# Language Design Meeting for September 28th, 2020 C# Language Design Meeting for September 30th, 2020 C# Language Design Meeting for October 5th, 2020 C# La…

ピックアップRoslyn: C# 10.0 でのレコード話

先月書いた通り、C# 9.0 がらみはほぼ確定(バグ修正レベルの変更しかしない状態)になっています。 (そういえばライブ配信はやったもののブログ化していなかった話題として、.NET 5.0 の RC 1 到達というのもあります。 RC (リリース候補)が付くと、もう大きな変更はできません。 あと、.NET Conf のページに「.NET Conf 2020 は11月10日開始」、「.NET 5 launch」の文字が入ったので、.NET 5.0 のリリース日も決まりました。アメリカ西海岸時…

C# 9.0 最終版

いくつかライブ配信では言ってたんですが、C# 9.0 がそろそろ機能確定しそうな感じ。 11月リリースと言ってるわけなので、まあ、時期的にもこの辺りで確定していないとまずいでしょう。 ということで、先日、 What's new in C# 9.0 もドキュメント化されて docs 上に公開されました。 What's new in C# 9.0 見出しに載るようなレベルでの機能の増減はもうありません。 Records とか Function pointers とか、一部の機能はま…

C# 9.0 in Visual Studio 16.7 preview 3

先週の話にはなってしまうんですが、Visual Studio 16.7 が Preview 3.1 になっています。 .NET 5 も Preview 6 に。 Announcing .NET 5.0 Preview 6 リリース ノート: Visual Studio 2019 バージョン 16.7 Preview 3 で、今回も C# 9.0 の新機能がいくつか入っています。 Records Top-level statements Function pointers…

ピックアップRoslyn 6/9: record

先月くらいからじわじわと、C# Language Design Meeting で Records がらみの議題が上がっています。 最近やっとまとまってきた感じがするのでまとめて紹介。 LDM notes for May 4 LDM notes for May 11 LDM Notes for May 27 LDM notes for June 1 record 型の新設 まず、基本方針として、record は class/struct に対する修飾子ではなくて、enum…

partial メソッドの拡張 (C# 9.0 候補機能)

もう1週間近く経過しちゃってるんですけども、Visual Studio 16.7 Preview 2 が出ています。 Visual Studio 2019 v16.7 Preview 2 Available Today! で、今日はこの Preview 2 で追加された C# 9.0 候補の話です。 先月追加された Srouce Generator関連の機能で、 partial メソッドの亜種が追加されました。 先月、Design Notesの時点で軽く触れていた機能が、この度…

C# 7.0リリース(もう2週間くらい経過したけども)

気が付けば、Visual Studio 2017がリリースされてから2週間くらい経ってしまっているわけですが… マイクロソフト公式のRelease CelebrationでLT登壇したり、 自分主催のリリース記念勉強会やったりとかで、 すっかり力尽きていました。 そんな感じでしたが、2点ほどそれの事後的な話。 リリース記念勉強会の動画上げました C# によるプログラミング入門、リリース版対応しました 動画 Visual Studio 2017 リリース記念勉強会、 当日…

discards

書いた。 変数宣言式 ということで、今日も「小ネタ」休みで「C#7思い出話」の方を書くことにします。 このページのタイトル このページのタイトルはかなり悩んだ… 実質的にはdiscards(_を使った値の破棄)の話なんですけども。 discards単体だと入れる場所に悩み。 discardsを書ける場所はどこかと考えたら、「変数宣言する場所」なんですよね。 で、「将来的には変数宣言式になるはずだし…」とか、 「というかむしろ、先にアイディアがあったのは変数宣言式で、それ…

小ネタ corefxlabとSystem.Memory

corefxlab .NETチームは以下のリポジトリの1つに、corefxlabというものがあります。 名前通り、corefx (.NET の標準ライブラリ)入りを目指して試験的なコードを入れておく場所で、 安定したものからcorefxに移転になったりします。 corefxの方にいきなり入らず、一度「lab」を経ているわけで、 それなりに「これまでの.NETではあまり取り組んでなくてこなれていないもの」が含まれています。 その最たるものがパフォーマンス。 .NETは、これまでどちら…

小ネタ コンパイル結果を覗いてみよう

めったにはないんですが、パフォーマンス チューニングとかを始めると、C#のコンパイル結果がどうなっているかを覗きたくなることがあります。C#の場合は、C#コード → IL (.NETの中間コード) → ネイティブ コードという2段階の変換が掛かります。 ということで、その極々まれにやりたくなることをやってみましょう。ILとネイティブ コードをそれぞれ覗いてみます。 例として、以下のようなC#コードを考えます。単純にvirtualなメソッドを呼び出すだけのコードです。主に、Mainメソッドの中…