Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Unsafe.BitCast のすゝめ。
Search
neno
January 11, 2025
Technology
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unsafe.BitCast のすゝめ。
.NET Conf 2024 Osaka x Fukuoka の LT 登壇資料
ブログ:
Unsafe.BitCast のすゝめ。
neno
January 11, 2025
More Decks by neno
See All by neno
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
1
950
.NET 10 のパフォーマンス改善
nenonaninu
3
7.6k
C# 14 / .NET 10 の新機能 (RC 1 時点)
nenonaninu
1
3.2k
Aspire をカスタマイズしよう & Aspire 9.2
nenonaninu
0
1.1k
分解して理解する Aspire
nenonaninu
2
3.3k
.NET 9 のパフォーマンス改善
nenonaninu
0
4k
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
2.9k
Re:ゼロから始める Observability
nenonaninu
3
1.6k
Node-AI のリッチな WEB フロントエンドを支える技術
nenonaninu
3
2.3k
Other Decks in Technology
See All in Technology
おい、エージェントを使って終わらせろ
nwiizo
0
260
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
350
GoにおけるFFIのこれまでとこれから
goccy
5
3.4k
Railsのように考える: See through the Master
snoozer05
PRO
3
870
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
110
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
1
1.4k
安心して変更できるWebフロントエンドの作り方
pirosikick
4
2.5k
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
160
あるけみー式LTスライド作成術
alchemy1115
1
210
Spring BootからQuarkusへの移行
tatsuya1bm
2
120
20260912_スクフェス三河
kgnkhkr
0
380
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
3
3k
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
For a Future-Friendly Web
brad_frost
183
10k
Designing for Timeless Needs
cassininazir
1
480
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
ラッコキーワード サービス紹介資料
rakko
1
4.9M
The Spectacular Lies of Maps
axbom
PRO
1
990
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The SEO Collaboration Effect
kristinabergwall1
1
560
Statistics for Hackers
jakevdp
799
230k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
Unsafe.BitCast のすゝめ。 . NET Conf 2024 Osaka x Fukuoka 2025/01/11
何縫ねの。
何縫ねの。 NTT コミュニケーションズ イノベーションセンター Microsoft MVP for Developer Technologies (2024~)
.NET / Web Development nenoNaninu @nenoMake ブログ https://blog.neno.dev その他 https://neno.dev
OSS SignalR 周りのいろいろ開発しています •TypedSignalR.Client • C# の SignalR Client を強く型付けするための
Source Generator •TypedSignalR.Client.TypeScript • TypeScript の SignalR Client を強く型付けするための .NET Tool / library •TypedSignalR.Client.DevTools • SignalR 向けに Swagger UI 相当の GUI を自動生成する library •AspNetCore.SignalR.OpenTelemetry • SignalR の OpenTelemetry 対応 + log 強化 https://github.com/nenoNaninu
C# 13 / .NET 9 関連資料 新機能について語っています…! https://speakerdeck.com/nenonaninu/net-9-noxin-ji-neng-rc-1-shi-dian
C# 13 / .NET 9 関連資料 パフォーマンス改善についても語っています…! https://speakerdeck.com/nenonaninu/dot-net-9-nopahuomansugai-shan
Unsafe.As 使っていますか?
Unsafe.As は危険① サイズの違う値型をキャストした場合、意図しないメモリ領域を読んでしまう
Unsafe.As は危険② 参照型をキャストした場合
Unsafe.As は使い方を絞れば安全 •メモリレイアウトが同一な構造体 •サイズが同一で参照型を含まない構造体
そこで Unsafe.BitCast ですよ
Unsafe.As と Unsafe.BitCast
Unsafe.BitCast の特徴 •Unsafe.BitCast の型引数として渡せるのは構造体だけ • 構造体でなかったら実行時例外 •キャスト元とキャスト先の構造体のサイズは同一でなければならない • サイズが同一でなければ実行時例外 •パラメータは参照渡しではなく値渡し
Unsafe.As より 安全かつパフォーマンスも改善
Unsafe.BitCast はいいぞ
ブログに書いています https://blog.neno.dev/entry/2025/01/07/182438