SlideShare a Scribd company logo
ソフトウェア技術者サミット in 福井 2016
鈴木 孝明
Live Coding で学ぶ C# 7
- 夏の短期集中講座 -
Name
鈴木 孝明
Twitter Account
@xin9le
Award
Microsoft MVP for Visual Studio
and Development Technologies
Web Site
http://xin9le.net
About Me
Live Coding で学ぶ C# 7
Highest Awards
Musician’s Hackathon 2015
SPAJAM 2016 東京C予選
Library
DeclarativeSql
世界で最も簡単な CRUD と Bulk Insert の提供 (自分調べ)
Recent Activities
「最新の」コンパイラで試す C# 7 の新機能たち
Demo
Highest Awards
Musician’s Hackathon 2015
SPAJAM 2016 東京C予選
Library
DeclarativeSql
世界で最も簡単な CRUD と Bulk Insert の提供 (自分調べ)
Recent Activities
+ 新たに追加された機能
次期バージョンの目標
さらなる書きやすさの追求
パフォーマンス向上
セッション動画
//build/ 2016 のセッションは Channel 9 で絶賛公開中
https://channel9.msdn.com/Events/Build/2016/B889
The Future of C#
デモの内容を簡単におさらい
New Features
var bin = 0b1011; //--- New!!
var dec = 123;
var hex = 0x1F;
Binary Literals
利用可能な
数字:
0 / 1
接頭辞:
0b / 0B2 進数表記
var bin = 0b1100_1010; //--- 4ビットずつ
var dec = 12_345_678; //--- 通貨の区切りっぽく
var hex = 0x33_ff_cc; //--- RGB 区切り
Digit Separators
先頭 / 末尾
以外は
いくつでも
自由な
桁区切り
if (int.TryParse("123", out var value));
Console.WriteLine(value);
Out Variable Declarations
スコープの
極狭化
式の途中で
変数宣言
static void Main()
{
IEnumerable<T> twice<T>(T x)
where T : struct
{
yield return x;
yield return x;
}
var xs = twice(12.3);
}
Local Functions
Generics
yield
なんでもOK
関数内で
のみ使える
関数
static void Main()
{
var a = new int[] { 0, 1, 2, 3, 4 };
ref var d = ref GetValue(a);
d = 5;
// 0, 1, 5, 3, 4
}
static ref int GetValue(int[] b)
{
ref var c = ref b[2];
return ref c;
}
Ref Locals / Ref Returns
メモリ効率
向上
参照受け
参照返し
(int sum, int count) Tally(IEnumerable<int> list)
{
var s = 0; var c = 0;
foreach (var x in list)
{
s += x;
c++;
}
return (s, c);
}
var t = Tally(new []{ 1, 2, 3 });
Tuples
ValueTuple
の糖衣構文
多値戻り値
サポート
//--- タプル型のインスタンスを
var t = (123, "abc");
//--- 変数に分解
(int x, string y) = t;
(var x, var y) = t;
var (x, y) = t;
Deconstructions
入れ子もOK
任意の型を
分解可能
より狭い
スコープ
//--- 定数マッチング
var v = x is 123;
//--- 型マッチング
object x = "abc";
if (x is string v)
{
//--- 何か v を用いた処理
}
Type Switch - is -
より簡易で
厳密な判定
object x = 123;
switch (x)
{
case "abc":
break;
case int v when 100 < v: //--- v が 100 より大きいとき
break;
case int v: //--- v が 100 以下のとき
break;
}
Type Switch - switch -
より強力な
条件分岐
when 句での
条件設定
(case guard)
計画の一部
のみを
搭載予定
Learn more…
C# vNext
http://blog.xin9le.net/entry/csharp-vnext
Enjoy new features and future of C#!!
Thank you
using CSharp;

More Related Content

What's hot (20)

PPTX
最速C# 7.x
Yamamoto Reki
 
PDF
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
 
PPTX
C# 7.2 with .NET Core 2.1
信之 岩永
 
PDF
動的なILの生成と編集
terurou
 
PDF
UniRx - Reactive Extensions for Unity
Yoshifumi Kawai
 
PDF
Async design with Unity3D
Kouji Hosoda
 
PDF
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
Kei Nakazawa
 
PDF
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
hecomi
 
PPTX
.NET Core 2.x 時代の C#
信之 岩永
 
PDF
The History of LINQ
Yoshifumi Kawai
 
PDF
今からでも遅くないC#開発
Kazunori Hamamoto
 
PPTX
Deep Dive C# 6.0
信之 岩永
 
PDF
Hello Dark-Side C# (Part. 1)
Yuto Takei
 
PDF
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
 
PPTX
C#で速度を極めるいろは
Core Concept Technologies
 
PPTX
Coqでsprintf
Masaki Hara
 
PPTX
Coqでsprintf
Masaki Hara
 
PDF
async/await不要論
bleis tift
 
PDF
Clrh 20140906 lt
Tomoyuki Obi
 
PDF
Pact言語によるセキュアなスマートコントラクト開発
Nagato Kasaki
 
最速C# 7.x
Yamamoto Reki
 
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
 
C# 7.2 with .NET Core 2.1
信之 岩永
 
動的なILの生成と編集
terurou
 
UniRx - Reactive Extensions for Unity
Yoshifumi Kawai
 
Async design with Unity3D
Kouji Hosoda
 
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
Kei Nakazawa
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
hecomi
 
.NET Core 2.x 時代の C#
信之 岩永
 
The History of LINQ
Yoshifumi Kawai
 
今からでも遅くないC#開発
Kazunori Hamamoto
 
Deep Dive C# 6.0
信之 岩永
 
Hello Dark-Side C# (Part. 1)
Yuto Takei
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
 
C#で速度を極めるいろは
Core Concept Technologies
 
Coqでsprintf
Masaki Hara
 
Coqでsprintf
Masaki Hara
 
async/await不要論
bleis tift
 
Clrh 20140906 lt
Tomoyuki Obi
 
Pact言語によるセキュアなスマートコントラクト開発
Nagato Kasaki
 

Similar to Live Coding で学ぶ C# 7 (20)

PDF
Pfi Seminar 2010 1 7
Preferred Networks
 
PDF
きつねさんでもわかるLlvm読書会 第2回
Tomoya Kawanishi
 
PPTX
T69 c++cli ネイティブライブラリラッピング入門
伸男 伊藤
 
PDF
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
Fujio Kojima
 
PDF
クロージャデザインパターン
Moriharu Ohzu
 
PDF
VerilatorとSystemC
Mr. Vengineer
 
PPTX
C++0x総復習
道化師 堂華
 
PDF
Tokyor23 doradora09
Nobuaki Oshiro
 
PDF
わんくま同盟大阪勉強会#61
TATSUYA HAYAMIZU
 
PPTX
C# 7 New Features
Takaaki Suzuki
 
PDF
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
decode2016
 
PPTX
20170422 azure portal cli 使いこなし
Takayoshi Tanaka
 
PPTX
ぱっと見でわかるC++11
えぴ 福田
 
PDF
研究生のためのC++ no.2
Tomohiro Namba
 
KEY
Objc lambda
matuura_core
 
PDF
160705-03 RTミドルウエア講習会・名城大
openrtm
 
PDF
C#勉強会
hakugakucafe
 
PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
 
PDF
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
Takakiyo Tanaka
 
PDF
Replace Output Iterator and Extend Range JP
Akira Takahashi
 
Pfi Seminar 2010 1 7
Preferred Networks
 
きつねさんでもわかるLlvm読書会 第2回
Tomoya Kawanishi
 
T69 c++cli ネイティブライブラリラッピング入門
伸男 伊藤
 
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
Fujio Kojima
 
クロージャデザインパターン
Moriharu Ohzu
 
VerilatorとSystemC
Mr. Vengineer
 
C++0x総復習
道化師 堂華
 
Tokyor23 doradora09
Nobuaki Oshiro
 
わんくま同盟大阪勉強会#61
TATSUYA HAYAMIZU
 
C# 7 New Features
Takaaki Suzuki
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
decode2016
 
20170422 azure portal cli 使いこなし
Takayoshi Tanaka
 
ぱっと見でわかるC++11
えぴ 福田
 
研究生のためのC++ no.2
Tomohiro Namba
 
Objc lambda
matuura_core
 
160705-03 RTミドルウエア講習会・名城大
openrtm
 
C#勉強会
hakugakucafe
 
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
 
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
Takakiyo Tanaka
 
Replace Output Iterator and Extend Range JP
Akira Takahashi
 
Ad

More from Takaaki Suzuki (20)

PDF
5 分で学ぶ Interpolated String Handler
Takaaki Suzuki
 
PDF
C# における Redis 徹底活用
Takaaki Suzuki
 
PDF
30min Serverless xTuber
Takaaki Suzuki
 
PPTX
Tetris Algorithm
Takaaki Suzuki
 
PPTX
Sharing Deep Dive
Takaaki Suzuki
 
PDF
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
Takaaki Suzuki
 
PDF
DeclarativeSql
Takaaki Suzuki
 
PDF
Sevens Algorithm
Takaaki Suzuki
 
PDF
Friendly
Takaaki Suzuki
 
PDF
WPF Interoperability
Takaaki Suzuki
 
PDF
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
 
PDF
酒の肴はC# vNext
Takaaki Suzuki
 
PDF
Async History in .NET
Takaaki Suzuki
 
PDF
SignalR Tune-up
Takaaki Suzuki
 
PDF
Twilioと.NET
Takaaki Suzuki
 
PDF
Programmer's Brain
Takaaki Suzuki
 
PDF
What's MVP
Takaaki Suzuki
 
PDF
C#のココが好き!
Takaaki Suzuki
 
PDF
Non-Stop Experience
Takaaki Suzuki
 
PDF
Using C# on Surface
Takaaki Suzuki
 
5 分で学ぶ Interpolated String Handler
Takaaki Suzuki
 
C# における Redis 徹底活用
Takaaki Suzuki
 
30min Serverless xTuber
Takaaki Suzuki
 
Tetris Algorithm
Takaaki Suzuki
 
Sharing Deep Dive
Takaaki Suzuki
 
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
Takaaki Suzuki
 
DeclarativeSql
Takaaki Suzuki
 
Sevens Algorithm
Takaaki Suzuki
 
Friendly
Takaaki Suzuki
 
WPF Interoperability
Takaaki Suzuki
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
 
酒の肴はC# vNext
Takaaki Suzuki
 
Async History in .NET
Takaaki Suzuki
 
SignalR Tune-up
Takaaki Suzuki
 
Twilioと.NET
Takaaki Suzuki
 
Programmer's Brain
Takaaki Suzuki
 
What's MVP
Takaaki Suzuki
 
C#のココが好き!
Takaaki Suzuki
 
Non-Stop Experience
Takaaki Suzuki
 
Using C# on Surface
Takaaki Suzuki
 
Ad

Recently uploaded (13)

PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 

Live Coding で学ぶ C# 7