SlideShare uma empresa Scribd logo
1 de 11
C# 6.0
@yone64
ちょっとややこしいバージョンのお話
 C# と .NET Framework と Visual Studioの関係
 C# : プログラミング言語
 .NET Framework
 Class Library : ライブラリ
 Runtime : 実行環境
 Visual Studio : 開発環境、C#をコンパイルしIL(中間言語)を生成
 C#のバージョンにより、使えるVisual Studioが決まるが、ターゲットとな
る.NET Frameworkのバージョンは選べる。
 C#6.0の文法を使うにはVisual Studio 2015が必要だが、.NET Framework2.0上で動作
するプログラムを作成可能。
 ただし、.NET Framworkのバージョンに制限を受ける機能も存在する。
とはいえ、年表
C#
1.0
1.2
2.0
3.0
4.0
5.0
6.0
.NET
Framework
1.0
1.1
2.0
3.0
3.5
4.0
4.5
4.6
Visual
Studio
2002
2003
2005
2008
2010
2012
2013
2015
Generic
Collection型パラメータ
WPF/WCF/WF
LINQ Expression
Taskdynamic
async/await
ちょっと振り返り
 C# 1.0 (Visual Studio .NET 2002 / .NET Framework 1.0)
 最初のリリース
 C# 1.2 (Visual Studio .NET 2003 / .NET Framework 1.1)
 #line ,xml document
 C# 2.0 (Visual Studio 2005 / .NET Framework 2.0)
 匿名メソッド、ジェネリック、null許容型、反復子、staticクラス、デリゲートの共
変性/反変性
 C# 3.0 (Visual Studio 2008 / .NET Framework 3.5)
 オブジェクト初期化子、コレクション初期化子、ラムダ式、拡張メソッド、匿名型、
自動プロパティ、言語統合クエリ (LINQ)、匿名型、ローカル var 型推論
ちょっと振り返り
 C# 4.0 (Visual Studio 2010 / .NET Framework 4.0)
 dynamic 、名前付き引数、省略可能なパラメーター、ジェネリックの共変性/反変性
 C# 5.0 (Visual Studio 2012・2013 / .NET Framework 4.5)
 async / await、呼び出し元情報属性
C# 6.0 言語強化
 パラダイムシフトを伴う大きな変更はない。
 たくさんの小さな新機能
 コード量の削減
 例外フィルタ
 using static
 nameof演算子
 文字列補間
 ラムダ式本体によるメンバの記述
 null条件演算子
 自動実装プロパティーの強化 などなど
Visual Studio 2015
 .NET Compiler Platform “Roslyn”
 C#で記述されたC#コンパイラ
 ライブコード分析「Light Bulbs」
 リファクタリングすべき内容などを電球マークで警告
 C# Essentials
 C#6.0の記述への書き換えをSuggestするプラグイン
 https://visualstudiogallery.msdn.microsoft.com/a4445ad0-f97c-41f9-a148-
eae225dcc8a5
実際にコードを見てみましょう
新機能まとめ①
 例外フィルター
 VB.NETより輸入
 keyword が if から when に変更されているので注意
 using static
 Java の static importと類似機能
 乱用すると読みにくくなるので注意
 nameof演算子
 文字列をリファクタリング連動させたい場合に便利
 インスタンスメンバにクラス修飾でアクセスするのが少し不思議
新機能まとめ②
 文字列補間
 String.FormatのSyntaxSugar
 Iformattableは唯一.NET Framework4.6に依存する機能
 ラムダ式本体によるメンバの記述
 メソッドとプロパティーの本体がお手軽記述
 ちょっと見分けにくくなった気がしないでもない
 null条件演算子
 nullチェック不要
 structとclassで結果が違うので注意
新機能まとめ③
 自動実装プロパティーの強化
 読取専用プロパティーの追加
 宣言時初期化

Mais conteúdo relacionado

Destaque

HttpClient詳解、或いは非同期の落とし穴について
HttpClient詳解、或いは非同期の落とし穴についてHttpClient詳解、或いは非同期の落とし穴について
HttpClient詳解、或いは非同期の落とし穴について
Yoshifumi Kawai
 

Destaque (7)

C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~
C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~
C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~
 
「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!
 
C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
Modern C# Programming 現代的なC#の書き方、ライブラリの選び方
Modern C# Programming 現代的なC#の書き方、ライブラリの選び方Modern C# Programming 現代的なC#の書き方、ライブラリの選び方
Modern C# Programming 現代的なC#の書き方、ライブラリの選び方
 
HttpClient詳解、或いは非同期の落とし穴について
HttpClient詳解、或いは非同期の落とし穴についてHttpClient詳解、或いは非同期の落とし穴について
HttpClient詳解、或いは非同期の落とし穴について
 
Roslynで体験してみるC#スクリプト #cs_fukuoka
Roslynで体験してみるC#スクリプト #cs_fukuokaRoslynで体験してみるC#スクリプト #cs_fukuoka
Roslynで体験してみるC#スクリプト #cs_fukuoka
 

Semelhante a C sharp6

~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
Akira Inoue
 
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
Developers Summit
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
Takayoshi Tanaka
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
david9142
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
Akira Inoue
 

Semelhante a C sharp6 (20)

デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートデモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
 
Visual studio2015と
Visual studio2015とVisual studio2015と
Visual studio2015と
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
 
~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
 
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
 
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
 
Dotnetcore30forwindesktop
Dotnetcore30forwindesktopDotnetcore30forwindesktop
Dotnetcore30forwindesktop
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
 
2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET する
 
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
 

Mais de yone64 (7)

XAML & XAML
XAML & XAMLXAML & XAML
XAML & XAML
 
Reactive extensions
Reactive extensionsReactive extensions
Reactive extensions
 
Wpfと非同期
Wpfと非同期Wpfと非同期
Wpfと非同期
 
もう一つのLINQ ~ Queryable入門
もう一つのLINQ ~ Queryable入門もう一つのLINQ ~ Queryable入門
もう一つのLINQ ~ Queryable入門
 
超Linq入門 実践編
超Linq入門 実践編超Linq入門 実践編
超Linq入門 実践編
 
超LINQ入門
超LINQ入門超LINQ入門
超LINQ入門
 
とあるアプリの設計進化
とあるアプリの設計進化とあるアプリの設計進化
とあるアプリの設計進化
 

Último

Último (11)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

C sharp6