きな粉もち.net

.NET関連仕事に携わっています。OSSのソースを読んで気がついたことを中心に呟いたりブログに投稿したりしています。最近はUiPathを使ったRPAも研究中。気軽にフォローやツッコミよろしくおねがいします! Gitはここを使っています https://github.com/kinakomotitti

C#7.0でのexpression-bodied function member

expression-bodied function member?

本体が式の関数メンバー・・・

先生・・分かりにくいです。。。

 

つまり・・・

「関数が1つの式"だけ"で定義されるもの。

 そんな関数をラムダ式っぽく簡単に書けるようにしました。」

・・・という機能として把握しました 笑

 

この機能は、C# 6.0 で追加されたということですね。

C#6.0 では、メソッドを簡単に書けるようになったわけですが、

C#7.0では、新たに以下のものもサポートされましたということですね。

  • コンストラクタ
  • デストラクタ
  • プロパティのアクセッサー

ふむ・・・

 

では、実際に、C#7.0のexpression-bodiedを使ったら

どのように実装ができるか確認しますかね。 

左:expression-bodied 使わない版 右:expression-bodied 使った版

f:id:kinakomotitti:20170811161920p:plain

 

(デストラクタのコードスニペットが ~ ←これだって初めて知った・・・)

 

思ったよりすっきりかけますね。

プロパティは、自動実装されるやつのほうがすっきするね。

 

プロパティのexpression- bodied は、INotifyPropertyChangedを実装するときに便利だって先生がおっしゃっていましたね。

 

使ったことないから、実感わかない。。。

 

いずれ調べます!

 

Expression – Bodied Members in C# 7.0