SlideShare a Scribd company logo
C#勉強会
~ C#9の新機能 ~
2021/03/22
小島 富治雄
前提条件とゴール
2
『C#の新機能勉強会 ~C#7、8の新機能を活用して速く安全なプログラムを書こう~』
前回は C#7、8
3
【参考】 C# 7~8の新機能の例
4
タプル
値型 (struct)
パターン マッチング
参照型 (class)
その他
アジェンダ
1. C# の歴史と C# 9.0
6
C# の歴史
C# Ver. 主な新機能 登場時期 .NET Visual Studio
1.0, 1.1, 1.2 オブジェクト指向 2002年 .NET Framework 1.0,1.1 .NET, .NET 2003
2.0 ジェネリック 2005年 .NET Framework 2.0 2005
3.0 関数型 2007年 .NET Framework 2.0, 3.0,
3.5
2008, 2010
4.0 動的 2010年 .NET Framework 4 2010
5.0 非同期 2012年 .NET Framework 4.5 2012, 2013
6.0 Roslyn (コンパイラーをC#で実装しオープンソース化) 2015年 .NET Framework 4.6
.NET Core 1.0
2015
7.0, 7.1, 7.2,
7.3
パターン マッチング、値型に関する改良 2017年 .NET Framework 4.6.2, 4.7,
4.7.1, 4.7.2
.NET Core 2.0, 2.1, 2.2
2017
8.0 値型、参照型に関する改良 2019年 .NET Core 3.0 2019 Ver.16.3
9.0 パターン マッチングの改良、record 型、
ソースコード ジェネレーター
2020年 .NET 5.0 2019 Ver.16.8
C# 7~9
8
C# Ver. Visual Studio
7.0 Visual Studio 2017
7.1 Visual Studio 2017 バージョン 15.3
7.2 Visual Studio 2017 バージョン 15.5
7.3 Visual Studio 2017 バージョン 15.7
8.0 Visual Studio 2019 16.3
9.0 Visual Studio 2019 16.8
.NET と C# の既定のバージョン
9
ターゲット フレーム バージョン C#の既定のバージョン
.NET 5.x C# 9.0
.NET Core 3.x C# 8.0
.NET Core 2.x C# 7.3
.NET Standard 2.1 C# 8.0
.NET Standard 2.0 C# 7.3
.NET Standard 1.x C# 7.3
.NET Framework all C# 7.3
プロジェクト ファイルでの C#のバージョン指定
10
<Project ……>
<PropertyGroup>
<OutputType>……</OutputType>
<TargetFramework>……</TargetFramework>
<!--……中略……-->
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
</PropertyGroup>
<!--……中略……-->
</Project>
LangVersion 説明
preview 最新プレビュー バージョン
latest 最新リリース バージョン
(マイナー バージョンを含む)
latestMajor 最新リリースの
メジャー バージョン
9.0 C# 9.0
C# 9.0
11
https://dotnet.microsoft.com/download/dotnet/5.0
https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-5.0.200-windows-x64-installer
開発環境
12
2. C# 9.0 の新機能
13
C# 9.0 の新機能
14
※ 目玉
サンプル コード
C# 9.0 の新機能
15
【準備】 Visual Studio でプロジェクトを新規作成
16
17
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
【準備】 Visual Studio でプロジェクトを新規作成
トップ レベル ステートメント
18
using System.Linq;
using static System.Console;
Enumerable.Range(1, 100)
.Select(i => (i % 3, i % 5) switch {
(0, 0) => "FizzBuzz" ,
(0, _) => "Fizz" ,
(_, 0) => "Buzz" ,
_ => i.ToString()
})
.ToList()
.ForEach(WriteLine);
トップレベルステートメントサンプル.cs | GitHub
record
19
public record RStaff(int Id, string Name);
public record RStaff2
{
public int Id { get; init; }
public string Name { get; init; } = "";
}
public record RStaff3
{
public int Id { get; private set; }
public string Name { get; private set; } = "";
public RStaff3(int id, string name) => (Id, Name) = (id, name);
}
recordサンプル.cs | GitHub
record
20
init-only プロパティ
21
class Point3
{
public double X { get; init; } = 0.0;
public double Y { get; init; } = 0.0;
public Point3() {}
public Point3(double x, double y) => (X, Y) = (x, y);
}
initプロパティサンプル.cs | GitHub
ラムダ式の改良
22
button.Click += static (_, _) => ShowOK();
ラムダ式サンプル.cs | GitHub
パターンマッチングの追加
23
static bool IsLeapYear(int year) =>
(year % 400, year % 100, year % 4) is (0, _, _) or (_, not 0, 0);
パターンマッチングサンプル.cs | GitHub
new式で型を省略
24
// フィールド
List<Staff> staffs = new();
// プロパティ
public Staff Staff { get; set; } = new();
new式で型を省略サンプル.cs | GitHub
拡張メソッド GetEnumerator
25
static class StaffListExtensions
{
public static IEnumerator<Staff> GetEnumerator(this StaffList @this)
{
for (var index = 0; index < @this.Count; index++)
yield return @this[index];
}
}
拡張メソッドGetEnumeratorサンプル.cs | GitHub
ネイティブサイズ整数
26
nint n1 = -1;
nuint n2 = 1U;
ネイティブサイズ整数サンプル.cs | GitHub
共変の戻り値の型の改良
27
class Base
{
public virtual IEnumerable<int> GetCollection() { return null; }
}
interface IBase
{
IEnumerable<int> GetCollection() { return null; }
}
class Derived : Base, IBase
{
// 共変の戻り値の型が使用可
public override List<int> GetCollection() { return new List<int>(); } // C#9
}
共変の戻り値の型サンプル.cs | GitHub
3. ソースコード ジェネレーターを体験してみよう
28
ソースコード ジェネレーター
29
パーシャル メソッドの改良
30
// 手書きのクラス
partial class PartialClass
{
private partial string GetMessage(); // not implemented here.
public void ShowMessage() => Console.WriteLine(GetMessage());
}
// ソースコード ジェネレーターで作成されるクラス
partial class PartialClass
{
private partial string GetMessage() => "Hello source generator!";
}
Partialメソッドサンプル.cs | GitHub
ソースコード ジェネレーターの作成
31
Visual Studio でプロジェクトを新規作成
32
Visual Studio でプロジェクトを新規作成
33
プロジェクトにパッケージを追加
34
プロジェクトにパッケージを追加
35
プロジェクトにパッケージを追加
36
HelloSourceGenerator.csproj
プロジェクト ファイルを変更
37
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.9.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.2" PrivateAssets="all" />
</ItemGroup>
</Project>
クラス名変更
38
HelloSourceGenerator.cs | GitHub
ソースコード ジェネレーターの作成
39
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Text;
using System.Text;
namespace HelloSourceGenerator
{
[Generator]
public class HelloSourceGenerator : ISourceGenerator
{
public void Execute(GeneratorExecutionContext context)
{
context.AddSource("generated.cs", SourceText.From(text: @"
namespace HelloSourceGeneratorSample
{
public class Sample
{
public const int Id = 1;
}
partial class PartialClass
{
private partial string GetMessage() => ""Hello source
generator!"";
}
}", encoding: Encoding.UTF8));
}
public void Initialize(GeneratorInitializationContext context)
{ }
}
}
ソースコード ジェネレーターを利用する側
40
ソースコード ジェネレーターを利用する側
41
ソースコード ジェネレーターを利用する側
42
ソースコード ジェネレーターを利用する側
43
HelloSourceGeneratorSample.csproj
プロジェクト ファイルを変更
44
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Analyzer Include="$(SolutionDir)/HelloSourceGenerator/bin/Debug/netstandard2.0/HelloSourceGenerator.dll" />
</ItemGroup>
</Project>
Program.cs を書き換え
45
using System;
namespace HelloSourceGeneratorSample
{
class Program
{
static void Main(string[] args)
{
var id = Sample.Id;
// not implemented here.
Console.WriteLine(id);
PartialClass partialClass = new();
partialClass.ShowMessage();
}
}
partial class PartialClass
{
private partial string GetMessage();
// not implemented here.
public void ShowMessage()
=> Console.WriteLine(GetMessage());
}
}
実行結果
46
1
Hello source generator!!
リビルド
SourceTreeSourceGenerator.cs | GitHub
roslyn-sdk/samples/CSharp/SourceGenerators | GitHub.com)
ソースコード ジェネレーターへの追加
47
HelloSourceGeneratorSample の Main() を書き換え
48
using System;
namespace HelloSourceGeneratorSample
{
class Program
{
static void Main(string[] args)
{
SourceTreeGenerated.SourceTree.Show();
}
}
partial class PartialClass
{
private partial string GetMessage();
// not implemented here.
public void ShowMessage()
=> Console.WriteLine(GetMessage());
}
}
実行結果
49
This is generated code!
The following syntax trees existed in the compilation that
created this program:
- Program.cs
- .NETCoreApp,Version=v5.0.AssemblyAttributes.cs
- HelloSourceGeneratorSample.AssemblyInfo.cs
リビルド
AutoNotifyGenerator. cs | GitHub
roslyn-sdk/samples/CSharp/SourceGenerators | GitHub.com)
ソースコード ジェネレーターへの追加
50
HelloSourceGeneratorSample の Main() を書き換え
51
using System;
using AutoNotify;
namespace HelloSourceGeneratorSample
{
class Program {
static void Main(string[] args)
{
Point point = new();
point.PropertyChanged += (point, _) => {
var p = point as Point;
Console.WriteLine($"The point has
changed: {p?.X}");
};
point.X = 100;
point.X = 200;
}
}
partial class PartialClass
{
private partial string GetMessage();
// not implemented here.
public void ShowMessage()
=> Console.WriteLine(GetMessage());
}
partial class Point
{
[AutoNotify]
private int _x;
}
}
実行結果
52
The point has changed: 100
The point has changed: 200
本日の内容
C# 9.0 の新機能 - C# ガイド | Microsoft Docs
C# 9.0 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C (ufcpp.net)
C# 9.0 on the record | .NET Blog
#145 Mads Torgersen, C# 9, Part 1 | no dogma podcast (bryanhogan.net)
#146 Mads Torgersen, C# 9, Part 2 – Listener Questions | no dogma podcast (bryanhogan.net)
The Future of C# | YouTube
参考文献
54

More Related Content

What's hot

研究生のためのC++ no.7
研究生のためのC++ no.7研究生のためのC++ no.7
研究生のためのC++ no.7
Tomohiro Namba
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
Ryo Suzuki
 
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesBoost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Shintarou Okada
 
メタプログラミング C#
メタプログラミング C#メタプログラミング C#
メタプログラミング C#
Fujio Kojima
 
Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析
Mr. Vengineer
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cython
Atsuo Ishimoto
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
Tomoya Nakayama
 
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
Unity Technologies Japan K.K.
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
Shiqiao Du
 
Replace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JPReplace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JPAkira Takahashi
 
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しようC# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
Fujio Kojima
 
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
Fujio Kojima
 
研究生のためのC++ no.4
研究生のためのC++ no.4研究生のためのC++ no.4
研究生のためのC++ no.4
Tomohiro Namba
 
LINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XMLLINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XML
ShinichiAoyagi
 
Tensorflow dynamically loadable XLA plugin ソースコード解析
Tensorflow  dynamically loadable XLA plugin ソースコード解析Tensorflow  dynamically loadable XLA plugin ソースコード解析
Tensorflow dynamically loadable XLA plugin ソースコード解析
Mr. Vengineer
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
信之 岩永
 

What's hot (20)

研究生のためのC++ no.7
研究生のためのC++ no.7研究生のためのC++ no.7
研究生のためのC++ no.7
 
C++14 Overview
C++14 OverviewC++14 Overview
C++14 Overview
 
More C++11
More C++11More C++11
More C++11
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
 
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesBoost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
 
メタプログラミング C#
メタプログラミング C#メタプログラミング C#
メタプログラミング C#
 
Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cython
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 
Replace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JPReplace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JP
 
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しようC# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
 
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
 
Objc lambda
Objc lambdaObjc lambda
Objc lambda
 
What is template
What is templateWhat is template
What is template
 
研究生のためのC++ no.4
研究生のためのC++ no.4研究生のためのC++ no.4
研究生のためのC++ no.4
 
LINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XMLLINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XML
 
Tensorflow dynamically loadable XLA plugin ソースコード解析
Tensorflow  dynamically loadable XLA plugin ソースコード解析Tensorflow  dynamically loadable XLA plugin ソースコード解析
Tensorflow dynamically loadable XLA plugin ソースコード解析
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
 

Similar to C#勉強会 ~ C#9の新機能 ~

復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
Yuta Matsumura
 
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
 
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
Shinsuke Sugaya
 
第2回デザインパターン資料
第2回デザインパターン資料第2回デザインパターン資料
第2回デザインパターン資料gaaupp
 
Spring と TDD
Spring と TDDSpring と TDD
Spring と TDD
Takeshi Ogawa
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaTakuya Tsuchida
 
cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携
Tomoaki Shimizu
 
CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8
Akira Onishi
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Shotaro Suzuki
 
GoF デザインパターン 2009
GoF デザインパターン 2009GoF デザインパターン 2009
GoF デザインパターン 2009
miwarin
 
Entity Framework
Entity FrameworkEntity Framework
Entity Framework
Nakashima Yujiro
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力
Keiji Ariyama
 
Roslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドインRoslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドイン
Fujio Kojima
 
Teclab3
Teclab3Teclab3
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
Akira Inoue
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Akira Inoue
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniter
Yuya Matsushima
 
Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!
Tomoaki Shimizu
 
New Features in C# 10/11
New Features in C# 10/11New Features in C# 10/11
New Features in C# 10/11
Akira Inoue
 

Similar to C#勉強会 ~ C#9の新機能 ~ (20)

復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
 
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
 
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
 
第2回デザインパターン資料
第2回デザインパターン資料第2回デザインパターン資料
第2回デザインパターン資料
 
Spring と TDD
Spring と TDDSpring と TDD
Spring と TDD
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携
 
CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 
GoF デザインパターン 2009
GoF デザインパターン 2009GoF デザインパターン 2009
GoF デザインパターン 2009
 
Entity Framework
Entity FrameworkEntity Framework
Entity Framework
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力
 
Roslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドインRoslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドイン
 
Teclab3
Teclab3Teclab3
Teclab3
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniter
 
Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!
 
New Features in C# 10/11
New Features in C# 10/11New Features in C# 10/11
New Features in C# 10/11
 

More from Fujio Kojima

Burikaigi 2023「C# Live Coding!」 小島の分
Burikaigi  2023「C# Live Coding!」 小島の分Burikaigi  2023「C# Live Coding!」 小島の分
Burikaigi 2023「C# Live Coding!」 小島の分
Fujio Kojima
 
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
Fujio Kojima
 
.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発
Fujio Kojima
 
BuriKaigi 2022 「C# Live Coding!」 小島の分
BuriKaigi 2022 「C# Live Coding!」 小島の分BuriKaigi 2022 「C# Live Coding!」 小島の分
BuriKaigi 2022 「C# Live Coding!」 小島の分
Fujio Kojima
 
.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~
Fujio Kojima
 
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
Fujio Kojima
 
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
Fujio Kojima
 
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
Fujio Kojima
 
機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編
Fujio Kojima
 
機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編
Fujio Kojima
 
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
Fujio Kojima
 
C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~
Fujio Kojima
 
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
Fujio Kojima
 
.NET MVP によるドキドキ・ライブコーディング! 小島の分
.NET MVP によるドキドキ・ライブコーディング! 小島の分.NET MVP によるドキドキ・ライブコーディング! 小島の分
.NET MVP によるドキドキ・ライブコーディング! 小島の分
Fujio Kojima
 
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Fujio Kojima
 
HTML5 on ASP.NET
HTML5 on ASP.NETHTML5 on ASP.NET
HTML5 on ASP.NET
Fujio Kojima
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
Fujio Kojima
 
C# 6.0 Preview
C# 6.0 PreviewC# 6.0 Preview
C# 6.0 Preview
Fujio Kojima
 
Microsoft .NET 入門
Microsoft .NET 入門Microsoft .NET 入門
Microsoft .NET 入門
Fujio Kojima
 
Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化
Fujio Kojima
 

More from Fujio Kojima (20)

Burikaigi 2023「C# Live Coding!」 小島の分
Burikaigi  2023「C# Live Coding!」 小島の分Burikaigi  2023「C# Live Coding!」 小島の分
Burikaigi 2023「C# Live Coding!」 小島の分
 
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
 
.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発
 
BuriKaigi 2022 「C# Live Coding!」 小島の分
BuriKaigi 2022 「C# Live Coding!」 小島の分BuriKaigi 2022 「C# Live Coding!」 小島の分
BuriKaigi 2022 「C# Live Coding!」 小島の分
 
.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~
 
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
 
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
 
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
 
機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編
 
機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編
 
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
 
C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~
 
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
 
.NET MVP によるドキドキ・ライブコーディング! 小島の分
.NET MVP によるドキドキ・ライブコーディング! 小島の分.NET MVP によるドキドキ・ライブコーディング! 小島の分
.NET MVP によるドキドキ・ライブコーディング! 小島の分
 
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
 
HTML5 on ASP.NET
HTML5 on ASP.NETHTML5 on ASP.NET
HTML5 on ASP.NET
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
 
C# 6.0 Preview
C# 6.0 PreviewC# 6.0 Preview
C# 6.0 Preview
 
Microsoft .NET 入門
Microsoft .NET 入門Microsoft .NET 入門
Microsoft .NET 入門
 
Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化
 

Recently uploaded

This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 

Recently uploaded (8)

This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

C#勉強会 ~ C#9の新機能 ~