c# 6.0 新機能download.microsoft.com/download/f/f/f/fff40a16-bfc2-4814...vb8 / c#2.0.net2.0 vs2005...
TRANSCRIPT
![Page 1: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/1.jpg)
ROOM
G
![Page 2: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/2.jpg)
•
•
1.
2.
•
![Page 3: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/3.jpg)
![Page 4: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/4.jpg)
VB7 / C#1.0
.NET1.0
VS2002
VB8 / C#2.0
.NET2.0
VS2005
VB9 / C#3.0
.NET3.5
VS2008
VB11 / C#5.0
.NET4.5
VS2012
言語
フレームワーク
ツール
三位一体の進化
![Page 5: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/5.jpg)
![Page 6: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/6.jpg)
電球マーク(修正、リファクタリング)
![Page 7: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/7.jpg)
![Page 8: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/8.jpg)
強化方針:
1. たくさんの小さな新機能
2. コード量削減
C#6.0
![Page 9: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/9.jpg)
Using static
using System.Math;
public class Point
{
public double Dist
{
get { return Math.Sqrt(X * X + Y * Y); }
}
}
![Page 10: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/10.jpg)
Using static
using System.Math;
public class Point
{
public double Dist
{
get { return Math.Sqrt(X * X + Y * Y); }
}
}
![Page 11: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/11.jpg)
Using static
using static System.Math;
public class Point
{
public double Dist
{
get { return Sqrt(X * X + Y * Y); }
}
}
![Page 12: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/12.jpg)
public Point Add(Point point)
{
if (point == null)
{
throw new ArgumentNullException("point");
}
}
Nameof 演算子
![Page 13: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/13.jpg)
public Point Add(Point other)
{
if (other == null)
{
throw new ArgumentNullException("point");
}
}
Nameof 演算子
![Page 14: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/14.jpg)
public Point Add(Point point)
{
if (point == null)
{
throw new ArgumentNullException(nameof(point));
}
}
Nameof 演算子
![Page 15: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/15.jpg)
public Point Add(Point other)
{
if (other == null)
{
throw new ArgumentNullException(nameof(other));
}
}
Nameof 演算子
![Page 16: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/16.jpg)
Null 条件演算子public static Point FromJson(JObject json)
{
if (json != null &&
json["x"] != null &&
json["x"].Type == JTokenType.Integer &&
json["y"] != null &&
json["y"].Type == JTokenType.Integer)
{
return new Point((int)json["x"], (int)json["y"]);
}
return null;
}
![Page 17: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/17.jpg)
Null 条件演算子public static Point FromJson(JObject json)
{
if (json != null &&
json["x"]?.Type == JTokenType.Integer &&
json["y"]?.Type == JTokenType.Integer)
{
return new Point((int)json["x"], (int)json["y"]);
}
return null;
}
![Page 18: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/18.jpg)
Null 条件演算子public static Point FromJson(JObject json)
{
if (json != null &&
json["x"]?.Type == JTokenType.Integer &&
json["y"]?.Type == JTokenType.Integer)
{
return new Point((int)json["x"], (int)json["y"]);
}
return null;
}
?.
![Page 19: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/19.jpg)
Null 条件演算子public static Point FromJson(JObject json)
{
if (json != null &&
json["x"]?.Type == JTokenType.Integer &&
json["y"]?.Type == JTokenType.Integer)
{
return new Point((int)json["x"], (int)json["y"]);
}
return null;
}
![Page 20: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/20.jpg)
Null 条件演算子public static Point FromJson(JObject json)
{
if (json?["x"]?.Type == JTokenType.Integer &&
json?["y"]?.Type == JTokenType.Integer)
{
return new Point((int)json["x"], (int)json["y"]);
}
return null;
}
![Page 21: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/21.jpg)
Null 条件演算子
OnChanged(this, args);
![Page 22: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/22.jpg)
Null 条件演算子
if (OnChanged != null)
{
OnChanged(this, args);
}
![Page 23: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/23.jpg)
Null 条件演算子
{
var onChanged = OnChanged;
if (onChanged != null)
{
onChanged(this, args);
}
}
![Page 24: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/24.jpg)
Null 条件演算子
OnChanged?.Invoke(this, args);
![Page 25: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/25.jpg)
自動プロパティの機能強化public class Point
{
public int X { get; } = 5;
public int Y { get; } = 7;
public Point(int x, int y) { X = x; Y = y; }
public double Dist
{
get { return Math.Sqrt(X * X + Y * Y); }
}
・・・
}
![Page 26: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/26.jpg)
インデックス初期化子public class Point
{
public int X { get; }
public int Y { get; }
…
public JObject ToJson()
{
var result = new JObject();
result["x"] = X;
result["y"] = Y;
return result;
}
}
![Page 27: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/27.jpg)
インデックス初期化子public class Point
{
public int X { get; }
public int Y { get; }
…
public JObject ToJson()
{
var result = new JObject() { ["x"] = X, ["y"] = Y };
return result;
}
}
![Page 28: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/28.jpg)
インデックス初期化子public class Point
{
public int X { get; }
public int Y { get; }
…
public JObject ToJson()
{
return new JObject() { ["x"] = X, ["y"] = Y };
}
}
![Page 29: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/29.jpg)
インデックス初期化子public class Point
{
public int X { get; }
public int Y { get; }
…
public JObject ToJson() =>
new JObject() { ["x"] = X, ["y"] = Y };
}
![Page 30: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/30.jpg)
• C# の歴史
• C#6.0 新機能
1.コーディングエクスペリエンス
2.言語の強化
![Page 31: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/31.jpg)
Language features in C#6 and VB 14http://roslyn.codeplex.com/
C# Frequently Asked Questionshttp://blogs.msdn.com/b/csharpfaq/
The Visual Studio Team Blog
http://blogs.msdn.com/b/visualstudio/
リソース
![Page 32: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/32.jpg)
アンケートにご協力ください。
●アンケートに上記のSession ID のブレイクアウトセッションに
チェックを入れて下さい。
●アンケートはお帰りの際に、受付でご提出ください。
マイクロソフトスペシャルグッズと引換えさせていただきます。
![Page 33: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/33.jpg)
Ask the Speaker のご案内
●本セッションの詳細は、EXPO 会場内
『Ask the Speaker』コーナー
Room G カウンタにてご説明させて
いただきます。是非、お立ち寄りください。
Ask the Speaker
EXPO会場MAP
![Page 34: C# 6.0 新機能download.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814...VB8 / C#2.0.NET2.0 VS2005 VB9 / C#3.0.NET3.5 VS2008 VB11 / C#5.0.NET4.5 VS2012 言語 フレームワーク](https://reader033.vdocuments.site/reader033/viewer/2022060319/5f0cb0bc7e708231d436a75b/html5/thumbnails/34.jpg)